严格模式
- 定义了一种不同的解析和执行模型。在严格模式下,ECMAScript3中的一些不确定行为将得到处理,对某些不安全的操作也会抛出异常
- “use strict”启用
局部变量和全局变量声明
function test(){
var message="hi";//,用var声明,是局部变量
}
test();
alert(message);//错误
function test(){
message="hi";//,不用var声明,是全局变量。但不推荐使用
}
test();
alert(message);//"hi"
undefined和null
一、undefined
1. 未对其进行初始化,返回undefined。
var message;
alert(message===undefined);//true
2.显式初始化为undefined,也返回undefined
(一般不用)
var message=undefined;
alert(message===undefined);//true
3.undefined和未定义的变量的区别
var message;//默认未初始化为undefined
alert(message);//"undefined"
alert(type of message);//"undefined"
//var age;变量未定义
alert(age);//产生错误
alert(type of age);//依然会返回"undefined"
二、null
1.表示一个空对象指针
var car=null;
alert(typeof car);//"object"
2.如果定义的变量准备在将来用于保存对象,最好初始化为null,只要检查null值就可以知道相应的变量是否已经保存了一个对象的引用
3.undefined派生自null
if(car !=null){
//do sth;
}
alert(null==undefined);//true
Boolean类型
1.可以对任何数据类型的值调用Boolean()函数,而且总会返回一个Boolean值
2.自动执行的Boolean转换对理解流控制语句(如if语句)非常重要
var message="Hello World!";
if(message){
alert("Value is true");
}