1)3.4.2
js中聲明的變量和未聲明的變量還是不一樣的秦叛,如下
var a;
alert(a);//"undefined"
alert(b);//發(fā)生錯誤,b未聲明
對于未聲明的變量只能執(zhí)行一個操作,即使用typeof操作符檢測其數(shù)據(jù)類型(數(shù)據(jù)類型為undefined)(對未聲明的變量使用delete不會導致錯誤州叠,但是沒有意義的,而且在嚴格模式下會導致錯誤)
var a;
alert(typeof a);//"undefined"
alert(typeof b);//"undefined"
2)
ECMAScript中共有6中數(shù)據(jù)類型,分別為5種簡單數(shù)據(jù)類型(也叫基本數(shù)據(jù)類型)Undefined,Null,Boolean,Number,String和1中復雜數(shù)據(jù)類型Object
3)3.4.1
對一個值使用typeof操作符只會返回下面6中字符串的某個松蒜,不可能為別的
"undefined" -------當值未定義
"boolean" -------當值為布爾值
"number" -------當值為數(shù)字
"string" --------當值為字符串
"object" --------當值為對象或null
"function" ---------當值為函數(shù)
4)
雖然undefined和null表示完全不同的含義,但由于undefined是派生與null的已旧,所以:
alert(null == undefined);//true
//但是
alert(null === undefined);//false
5)3.4.4
雖然Boolean類型的值只有true和false兩個秸苗,但ECMAScript中所有類型的值都有與這兩個值等價的值惊楼。要將一個值轉換為其對應的Boolean值秸讹,可以用轉換函數(shù)Boolean()
""(空字符串)
0,-0和NaN
null
undefined
這幾個值對應的Boolean值為false璃诀,其余的都為true