学习javascript笔记
javascript 学习笔记
特殊数据类型是: * Undefined
var a;//声明一个变量,但没有对其赋值
alert(a);//但它仍然有值的,它的值为undefined
alert(b);//但注意,输出一个未定义的变量将出现错误,而不是输出undefined
NaN是一个特殊的值,含义是"Not A Number"-不是一个数字,当将其它值转换成数字失败时会得到这个值
var str ="some string here!";
var num = 123;
alert(str*num);//将输出NaN,因为乘法运算符只能针对数字,所以进行运算时计算机会将字段串转换成数字
Bool类型转换
var str = "some string";
alert(!!str);//true,因为非运算符是针对布尔值进行运算的,所以将其它类型转换成布尔值只须将其连续非两次
str ="";
alert(!!str);//输出false,只有空字符串转换成布尔值时会是false,非空字符串转换成布尔值都会返回true
var num =0;
alert(!!num);//false
num=-123.345;
alert(!!num);//true,除0以外的任何数字转换成布尔值都会是true
//还有一个非常重要的是,空字符串转换成数字将会是0
alert(""*1);//输出0
获取变量类型 typeof 运算符
使用window.prompt可以弹出包含输入框的窗口,用户输入的内容将是此函数的返回值
内置对象Math与Date
Date对象像一个时光机
var d = new Date();//Date对象需要创建
Date 对象能够表示的日期范围约等于 1970 年 1 月 1 日前后各 285,616 年。
alert(d);//直接输出这个对象,将会得到一个表示时间的字符串
这个对象有一些方法,可以用来获取时间的各个部分
alert(d.getYear());//获取年,//个人测试显示有点问题,待验证
alert(d.getFullYear());//始终返回年份的4位数表达方式
alert(d.getMonth());//返回月份,注意,月份是从0开始计数的,所以1月时将返回0
alert(d.getDate());//返回今天几号
alert(d.getDay());//返回今天星期几,星期天是0,星期1是1....
alert(d.getHours());//返回小时
alert(d.getMinutes());//返回分钟
alert(d.getSeconds());//返回秒
alert(d.getMilliSeconds());//返回毫秒//个人测试不支持1次
alert(d.getTime());
返回一个整数值,这个整数代表了从1970年1月1日开始计算到Date对象中的时间之间的毫秒数日期的范围大约是1970年1月1日午夜的前后各285616年,负数代表1970年之前的日期我们不但能从中获取时间值,还可以设置时间值与那些getXXX方法对应的设置时间的函数仅仅是将get改成set
var d = new Date();
d.setFullYear(1690);//设置年份为1900
alert(d.getFullYear());//返回1900
alert(d.getTime());//输出的值是负的,这验证了上面所说的getTime()返回值
setXXX这样的方法有个最大的好处就是如果我们设置了错误的值,脚本并不会出错,但日期会自动更正
记住,月份是从0开始计数的
数组与对象
Array和Date一样,也是一个内置对象,需要使用new运算符创建
var arr = new Array();
JavaScript中数组长度会自动增长,并且length属性会自动更新
arr = new Array(6);//将得不到预期效果,因为这是在声明一个长度为6的空数组
还可以使用数组字面量的方式
arr = [];//一个空中括号几乎是等价的但更灵活和简便
数组中可以混合存放字符串,数值,布尔值...,几乎所以类型的值,包括数组
arr = new Array(1,0,true,"some string",new Array("a",3));//第五个元素放的是一个数组
alert(arr[4]);//输出"a",3
alert(arr[4][0]);//输出"a"
向数组中添加,删除元素(push,delete)
arr.push(a);//push方法将元素添加到数组未尾
arr.push("a","b");//可以一次添加多个元素
利用数组长度自动增长的特性
arr[arr.length]="new element";
使用delete与下面的语句效果一样
arr = ["#","$","%"];
alert(arr);
arr[2]=undefined;//undefined是一个值
alert(arr);
join方法,返回数组中的所有元素以指的分隔符间隔的字符串
数组和对象是相通的
var arr = new Array();
var obj = new Object();
alert(typeof arr);//object
alert(typeof obj);//object
数组可以使用字符串下标的
var person = new Array();
person["age"] = 18;//注意,中括号里的下标是一个字符串,所以需要使用引号
person["weight"] = "123kg";
person["height"] = "170cm";
person["arm"] = 2;
person["leg"] = 2;
而对象也可以使用类似语法访问它的属性
var obj = new Object();
obj.property = "some data";
alert(obj["property"]);//"some data"
//当然也可以使用数字下标
obj[1]=123;
alert(obj[1]);//123
alert(obj.property);//"some data"
alert(obj.length);//但与数组不同的是,它没有length属性,输出undefined
与数组字面量相对应的,也有对象字面量的声明方式
var obj = {
a:123,//这里的a,b等同样是对象的属性名
b:456 //注意,最后没有逗号
};
还可以这样写
obj = {
"a":345, //虽然如果用引号引起来就可以使用空格等不符合变量命名规范的字符,但强烈不推荐
"b":333
};
for.. in...循环出现了 (对于研究对象,for in循环太有用了)
String对象以及一些用于字符串的方法和属性
str = new String("some string here");
//表面上看,这和直接创建的字符串是一样的效果
str = "some string here";
但由于使用new String();所以创建出来的是对象
var str = new String();
alert(typeof str);//object
//因为是对象,所以自然有很多属性和方法
字符串本身也存这样的方法
有很多用于处理字符串的方法以及一些属性
•length 属性,返回字符串的长度 www.zzzyk.com
•indexOf 方法,返回字符串内第一次出现子字符串的字符位置
•lastIndexOf 方法,返回字符串中子字符串最后出现的位置
•charCodeAt 方法,返回一个整数,代表指定位置上字符的 Unicode 编码
•fromCharCode 方法,从一些 Unicode 字符值中返回一个字符串
•replace 方法,进行文字替换,返回替换后的字符串的复制
•substr 方法,返回一个从指定位置开始的指定长度的子字符串
•substring 方法,返回位于 String 对象中指定位置的子字符串
•toLowerCase 方法,返回一个字符串,该字符
补充:web前端 , JavaScript ,