js有5种基本数据类型,Undefined,Null,Boolean,Number,String。还有一种复杂数据类型Object
var message;
alert(message == undefined); //true
-----------------------------------
var message = undefined;
alert(message == undefined); //true
-----------------------------------
var message; //this variable is declared but has a value of undefined
//make sure this variable isn't declared
//var age
alert(message); //"undefined"
alert(age); //causes an error
----------------------------------
var message; //this variable is declared but has a value of undefined
//make sure this variable isn't declared
//var age
alert(typeof message); //"undefined"
alert(typeof age); //"undefined"
对于已声明的的变量,未加初始化,则为undefined,未定义变量则会报错,但是其类型依旧是undefined
var car = null;
alert(typeof car); //"object"
----------------------------------
var car = null;
if(car === null){
alert(true); //true
}
----------------------------------
var car = null
alert(car == null);//true
alert(car == undefined);//true
alert(null == undefined);//true
alert(car === null); //true
alert(car === undefined);//false
alert(null === undefined);//false
从上边结果可以看出==是只比较两边的值的,它出于比较目的会转换其操作数,而 == =是等同符,两边类型一致,数值一致才会等
100==="100" //返回false
abc==="abc" //返回false
100=="100" //返回true
alert(1 == true);//true
alert(0 == false);//true
NaN==NaN //返回false,NaN和所有值包括自己都不相等。
如果等号两边是boolean、string、number三者中任意两者进行比较时,优先转换为数字进行比较。
如果等号两边出现了null或undefined,null和undefined除了和自己相等,就彼此相等