一、数据类型
谨记两大类6小类:
第一类基本数据类型(简单数据类型):Undefined、Null、Number、String、Boolean;
第二类复杂数据类型(引用数据类型):Object;(个人理解,它的值是一个内存地址,例如:“0x00000000” , 但是又因为指向这个地址,所以可以引用这个地址的存储的数据)
所有的类型都可以用typeof操作符来操作,需要注意的是typeof null = Object,
typeof还有一个"function"值,所以并不是和数量类型一一对应的;
1、Undefined类型
只用记住:声明了但是未赋值的变量的变量值是undefined,未声明的变量的值也是undefined,但是前者不会报错,后者会报错!
4、Number类型
记住4个方法,Number()、parseInt()、parseFloat()、isNaN();以及IEEE754数值浮点的通病,某些浮点数不能很精确,例如 0.1+0.2 != 0.3
需要特别注意的是:
Number("123abc") // NaN
parseInt("123abc") // 123
5、String类型
(1)注意字符字面量:
\xnn的含义是 以十六进制代码nn表示的一个字符串;
\unnnn的含义是以十六进制代码nnnn表示的一个Unicode字符
后续ES6对这部分内容进行深入;
(2)null和undefined没有toString()方法,但是有string()方法;
6、Object类型
该类型本章没有深入讲解,只是给出了其创建的实例保存的一些方法和属性,具体如下:
(1)construction
(2)hasOwnProperty(propertyName)
(3)isPrototypeOf(object)
(4)propertyIsEnumerable(propertyName)
(5)toLocaleString()
(6)toString()
(7)valueOf()
更多详细信息后续会结合第五章进行扩展
二、语句
语句很多,有很多常用的语句在此就不一一赘述,只是提醒一下label和with语句
1、label语句
加标签的语句一般要和for循环语句配合使用,并且和break或者continue结合,并且在ES5中要注意没有块级作用域这个情况
var num = 0;
outmost:
for(var i=0; i<10; i++){
for(var j=0; j<10; j++){
if(i == 5&& j==5){
break outmost;
}
num++;
}
}
alert(num);
注意break outmost和break的区别;
2、with语句
with语句的作用是将代码的作用域设置到一个特定的对象object中来,例如
with(object){},括号里面的所有语句都要在object的环境下执行