一、變量的使用
js是一種弱類型語言指的是它定義變量的時候不需要指定類型,類型是在賦值的時候確定的。
1、不定義也不賦值直接使用變量,如:
console.log(a)
這種情況程序會報錯a is not defined,并會中斷。
2、定義了并沒有賦值,如:
var b ;
console.log(b)
打印結果為:b is undefined,但是程序不會中斷。
二、變量的類型
總的來說分為:原始數據類型和引用數據類型。
原始數據類型有5種:undefined,null,boolean,number,string。
關于原始數據類型的幾點總結:
1、 null可以理解為從undefined派生出來的。所以console.log(null == undefined)輸出為true
2、某些編程語言中以0開頭的表示八進制(如:056為八進制,068則為十進制因為含有8),0X代表十六進制
3、number類型的特殊值有:infinity--無窮大;NaN即非數字:為一個特殊的值,不等于任何值包括它自己。所以判斷一個數是不是NaN時,只能通過isNaN來判斷,而不能通過兩個等號來判斷。
console.log(typeof NaN);//number
console.log(NaN == NaN);//false
console.log(0/0);//NaN
console.log(typeof 0/0);//NaN
console.log(isNaN(0/0));//true
console.log(0/0 == 0/0);//false
**值得注意的是:加加減減無論在前在后都是會改變原變量的值:
var a = 1;
var b = ++a;
console.log(a,'---------',b);//輸出結果都為2
常用的引用數據類型有3種:對象、數組和函數。
三、常用的數據類型的隱式轉換
1、布爾類型轉換
undefined--->false
null--->false
數值0,NaN--->false,其他數值--->true
空字符串--->false,非空字符串--->true
其他對象--->ture
2、轉換為數值類型
undefined--->NaN
null--->0
字符串數字--->數值
布爾類型:true-->1 false --->0
3、轉字符串類型
undefined ---> "undefined"
null---> "null"
布爾類型:true---> "true",false---> "false"
123---> "123",NaN--->"NaN"