1. 程式人生 > 實用技巧 >JavaScript之資料型別和變數

JavaScript之資料型別和變數

資料型別

Number

JavaScript不區分整數和浮點數,都用Number表示,NaN表示不是數字,infinity表示無限大

四則運算中的取餘用%

布林值

和Python的差不多

&&運算是與運算,只有所有都為true&&運算結果才是true

true && true; // true
true && false; // false
false && true && false; // false

||運算是或運算,只要其中有一個為true||運算結果就是true

false || false; // false
true || false; // true
false || true || false; // true

!運算是非運算,它是一個單目運算子,把true變成falsefalse變成true

! true; // false
! false; // true
! (2 > 5); // true

JavaScript允許對任意資料型別做比較:

false == 0; // true
false === 0; // false

要特別注意相等運算子==。JavaScript在設計時,有兩種比較運算子:

第一種是==比較,它會自動轉換資料型別再比較,很多時候,會得到非常詭異的結果;

第二種是===比較,它不會自動轉換資料型別,如果資料型別不一致,返回false,如果一致,再比較。

由於JavaScript這個設計缺陷,不要使用==

比較,始終堅持使用===比較。

NaN與任何值都不相等包括自己 唯一能判斷的是isNaN函式通過isNaN(NaN)

同樣跟Python一樣因為計算機無法精確表示無限迴圈小數 所以浮點數也最好不要比較

null和undefined

null表示空與0和字串‘’不一樣,0是一個數值,''表示長度為0的字串,而null表示“空”,重點' '中間加一個空格能夠被判斷成True,而前面三個都是False。

undefined表示值未定義 僅在判斷函式引數是否傳遞的情況下有用

陣列

陣列是一組按順序排列的集合,集合的每個值稱為元素。JavaScript的陣列可以包括任意資料型別

例如:

[1, 2, 3.14, 'Hello', null, true];

另一種建立陣列的方法是通過Array()函式實現:

new Array(1, 2, 3); // 建立了陣列[1, 2, 3]

和Python的list一樣用索引訪問

物件

JavaScript的物件是一組由鍵-值組成的無序集合,例如:

var person = {
    name: 'Bob',
    age: 20,
    tags: ['js', 'web', 'mobile'],
    city: 'Beijing',
    hasCar: true,
    zipcode: null
};

JavaScript物件的鍵都是字串型別,值可以是任意資料型別。上述物件每個鍵又稱為物件的屬性,例如,personname屬性為'Bob'zipcode屬性為null

要獲取一個物件的屬性,我們用物件變數.屬性名的方式:

person.name; // 'Bob'
person.zipcode; // null

變數

變數名是大小寫英文、數字、$_的組合,不能用數字開頭,var表示宣告變數

使用var宣告的變數不是全域性變數,它的範圍被限制在該變數被申明的函式體內,同名變數在不同的函式體內互不衝突