第三章 基本概念
一、6种数据类型:undefined,null,Boolean,number,string,object。
测试数据类型:typeof。用法:typeof 变量。
1、值未定义返回undefined,值是对象或null返回object。
undefined和null类型只有一个值,undefined和null。
null表示一个空对象指针,如果定义的变量准备在将来用于保存对象,最好将其初始化为null。这样只要直接检查null的值即可知道变量是否已经保存了一个对象的引用,如:
if(car!=null){
//对car对象执行操作
}
实际上,undefined值派生自null,因此比较undefined==null返回true。
2、boolean
各种数据类型为false的情况:string的”“”空字符串、num的0和NaN、object的null,undefined的undefined。
3、num
var a=3.12e7意为3.12*10的7次方。
注意不要测试某特定浮点数值。(浮点数的计算会产生舍入误差的问题,关于精确度)
isNaN函数(判断是否为数字),Number函数(将其他类型的数据格式转换为数字),
parseInt函数(将字符串转化成整型数据),parseFloat函数(将字符串转化成浮点型数据)
4、string
toString函数(将num,bool,object,string数据类型转换为字符串)
String函数可以将所有数据类型都转换成字符串,null和undefined转换为“null”和“undefined”
将某个值转换为字符串还可以直接加“”即可。如:a+””。
5、object对象(重点)
var o=new Object();
二、操作符
+、-都会应用于四种数据类型(不包含null和undefined),先将他们转化为数字类型再进行运算。字符串不包含有效数字时转换为NaN。
位操作符:
异或:相同为0不同为1。
左移右移符号:<< >> 先转换为2进制再进行移位操作。
布尔操作符:
与:第一个操作数是对象,返回第二个操作数;
第二个操作数是对象,只有第一个操作数为true的情况下才返回该对象
两个都是对象,返回第二个
第一个是null/undefined/NaN,返回null/undefined/NaN
或:第一个操作数是对象,返回第一个操作数;
第一个操作数为false返回第二个操作数
两个都是对象,返回第一个
都是是null/undefined/NaN,返回null/undefined/NaN
关系操作符:
先转换为数值再进行比较。
比较两个字符串的大小就是比较字符串的ascill码大小,如“abdcd”“bcd”其实只需要比较第一位即可,因为位数都会补齐,只需要看开头位。
“a”<3为false。“a”转换为数值为NaN,任何数与NaN比较都为false。
相等操作符:分为相等和全等。
相等操作时,先转换成数值再进行比较。只要有一个操作数为NaN,相等操作符返回false,不相等返回true。
全等操作时,只有数据类型也相同才等。
三、循环
for对数组的遍历可以是for key in array,每次执行循环时都会将array中存在的一个属性值赋给key,直到所有值被遍历完。
数组下标可以不是数字,可以是值,这样可以不用二维数组来存储两个值,直接a【值】=值,然后用for in遍历。
break和continue。break直接退出整个循环而continue退出当前循环从顶部再次执行下一次循环。
switch(){
case value :
statement;
break;
default:
statement;
}
四、函数
函数的参数并非必须,function(){arguments[i]}来访问参数,还有arguments.length来获取传入的参数的长度。