1. 程式人生 > >(一)JavaScript 資料型別/typeof、型別轉換、邏輯運算子

(一)JavaScript 資料型別/typeof、型別轉換、邏輯運算子

一、主流瀏覽器及核心

IE       ==>  trident
Chrome   ==>  webkit / blink
Firefox  ==>  Gecko
Opera    ==>  presto
Safari   ==>  webkit

二、變數命名規則

  1. 變數名必須以英文字母_$ 開頭
  2. 變數名可以包括英文字母_$數字
  3. 不可以用系統的關鍵字、保留字作為變數名

三、值型別(資料型別)

JavaScript 的資料型別,共有六種。(ES6 又新增了第七種 Symbol 型別的值。)
數值(number)字串(string)布林值(boolean)

undefinednull物件(object)

按記憶體中儲存形式分為

1、不可改變的原始值(棧資料 stack)
Number、Boolean、String、undefined、null
2、引用值(堆資料 heap)
Array、Object、function、Date、RegExp……

typeof 運算子可以返回一個值的資料型別。

數值、字串、布林值分別返回number、string、boolean。
函式 返回 function
undefined 返回 undefined
null 返回 object
NaN 返回 number

document.write(typeof undefined)
; //undefined document.write(typeof null); //object document.write(typeof NaN); //number

四、運算子

1、任何資料型別 + 字串都等於字串
2、NaN是 JavaScript 的特殊值,表示“非數字”(Not a Number)。NaN不等於自身NaN==NaN //false
3、括號()優先順序最高,=優先順序最弱

五、邏輯運算子

undefinednullNaN''(空字串)、0false 六個值 轉換成布林值都是false,其他為ture

1)與 &&
從左到右執行判斷兩邊的表示式,如左邊表示式為ture

,則執行右邊表示式並返回右邊表示式的值

var a = 1 && 1+1
document.write(a); //2

如左邊表示式為false,則直接返回左邊表示式的值不再執行右邊表示式進行判斷

var b = 0 && document.write(111);
document.write(b); //0

2)或 ||
從左到右執行判斷兩邊的表示式,如左邊表示式為ture,則直接返回左邊表示式的值不再執行右邊表示式進行判斷;

var a = 1 + 1 || 2 + 3;
document.write(a); //2

如左邊表示式為false,則執行右邊表示式

var b = 0 || '' || 2 + 3;
document.write(b); //5
var c = 0 || null;
document.write(c); //null

3)非 !
轉換成布林值取反

六、型別轉換

顯示型別轉換

1) Number() 轉換成Number型別

var str = '123';
var num = Number(str);
console.log( typeof (num)  + ' : ' + num ); // number : 123

ture 轉換成Number型別 ==> 1
false 轉換成Number型別 ==> 0
null 轉換成Number型別 ==> 0
undefined 轉換成Number型別 ==> NaN

2) parseInt() 轉換成整型
3) parseFloat() 轉換成浮點型
4) String() 轉換成字串
5) Boolean() 轉換成布林值
6) .toString() 轉換成字串

隱式型別轉換

1) isNaN() 先把引數隱式轉換成Number型別,再判斷是否為NaN
2)一元運算子會把運運算元轉成數值。(正負)

+'abc' // NaN
-'abc' // NaN
+true // 1
-false // 0

3)加法運算子(+),當一邊的值為字串,另一個值為非字串,則後者轉為字串。
4)除了加法運算子(+)有可能把運運算元轉為字串,其他運算子都會把運運算元自動轉成數值。

'5' - '2'  // 3
'5' * '2'  // 10
true - 1   // 0
false - 1  // -1
'1' - 1    // 0
'5' * []    // 0
false / '5' // 0
'abc' - 1   // NaN
null + 1    // 1
undefined + 1 // NaN