一 基本语句和变量
1.1 变量提升
JavaScript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升。
console.log(a); var a = 1;
上面的代码首先使用console.log方法,在控制台(console)显示变量a的值。这时变量a还没有声明和赋值,所以这是一种错误的做法,但是实际上不会报错。因为存在变量提升,真正运行的是下面的代码:
var a; console.log(a); a = 1;
最后的结果是显示undefined,表示变量a已声明,但还未赋值。
1.2数据类型
JavaScript的值的类型分成两大类:原始类型(primitive type)和合成类型(complex type)。
原始类型又分成三种。
数值(number) 字符串(string) 布尔值(boolean)
“数值”就是整数和小数(比如3.14),“字符串”就是由多个字符组成的文本(比如"Hello World"),“布尔值”则是true(真)和false(假)两个特定值。
如果JavaScript预期某个位置应该是布尔值,会将该位置上现有的值自动转为布尔值。转换规则是除了下面五个值被转为false,其他值都视为true。
undefined null false 0 "
合成类型也分成三种。
对象(object) 数组(array) 函数(function)