標籤:style class c ext a int
1、delete刪除對對象的屬性和方法的定義。強制解除對它的引用,將其設定為 undefined
delete 運算子不能刪除開發人員未定義的屬性和方法。
2、void 運算子對任何值返回 undefined。該運算子通常用於避免輸出不應該輸出的值,沒有傳回值的函數真正返回的都是 undefined。
3、前遞增運算子,就是數值上加 1,形式是在變數前放兩個加號(++):
var iNum = 10;++iNum;
第二行代碼把 iNum 增加到了 11,它實質上等價於:
var iNum = 10;iNum = iNum + 1;
同樣,前遞減運算子是從數值上減 1,形式是在變數前放兩個減號(--):
var iNum = 10;--iNum;
在這個例子中,第二行代碼把 iNum 的值減到 9。
在使用首碼式運算子時,注意增量和遞減運算子都發生在計算運算式之前。
4、後遞增運算子也是給數值上加 1,形式是在變數後放兩個加號(++):與首碼式運算子不同的是,尾碼式運算子是在計算過包含它們的運算式後才進行增量或減量運算的。
5、位元運算符是在數字底層(即表示數位 32 個數位)進行操作的。
6、整數有兩種類型,即有符號整數(允許用正數和負數)和不帶正負號的整數(只允許用正數)。有符號整數使用 31 位表示整數的數值,用第 32 位表示整數的符號,0 表示正數,1 表示負數。數值範圍從 -2147483648 到 2147483647。
7、位元運算 NOT 由否定號(~)表示,它是 ECMAScript 中為數不多的與二進位算術有關的運算子之一。
位元運算 NOT 是三步的處理過程:
- 把運算數轉換成 32 位元字
- 把位元轉換成它的二進位反碼
- 把位元轉換成浮點數
8、Boolean 運算子有三種:NOT、AND 和 OR。
9、
抽象操作 ToBoolean 將其參數按照下表中的規則轉換為邏輯值:
| 參數類型 |
結果 |
| Undefined |
false |
| Null |
false |
| Boolean |
結果等於輸入的參數(不轉換) |
| Number |
如果參數為 +0, -0 或 NaN,則結果為 false;否則為 true。 |
| String |
如果參數為空白字串,則結果為 false;否則為 true。 |
| Object |
true |
10、
邏輯 NOT 運算子的行為如下:由驚嘆號(!)表示
- 如果運算數是對象,返回 false
- 如果運算數是數字 0,返回 true
- 如果運算數是 0 以外的任何數字,返回 false
- 如果運算數是 null,返回 true
- 如果運算數是 NaN,返回 true
- 如果運算數是 undefined,發生錯誤
11、如果某個運算數不是原始的 Boolean 型值,邏輯 AND 運算並不一定返回 Boolean 值
- 如果一個運算數是對象,另一個是 Boolean 值,返回該對象。
- 如果兩個運算數都是對象,返回第二個對象。
- 如果某個運算數是 null,返回 null。
- 如果某個運算數是 NaN,返回 NaN。
- 如果某個運算數是 undefined,發生錯誤。
12、邏輯 AND 運算子用雙和號(&&)表示。
13、邏輯 OR 運算子由雙豎線(||)表示。
14、乘法還有一些特殊行為:
- 如果結果太大或太小,那麼產生的結果是 Infinity 或 -Infinity。
- 如果某個運算數是 NaN,結果為 NaN。
- Infinity 乘以 0,結果為 NaN。
- Infinity 乘以 0 以外的任何數字,結果為 Infinity 或 -Infinity。
- Infinity 乘以 Infinity,結果為 Infinity。
15、除法運算子也有一些特殊行為:
- 如果結果太大或太小,那麼產生的結果是 Infinity 或 -Infinity。
- 如果某個運算數是 NaN,結果為 NaN。
- Infinity 被 Infinity 除,結果為 NaN。
- Infinity 被任何數字除,結果為 Infinity。
- 0 除一個任何非無窮大的數字,結果為 NaN。
- Infinity 被 0 以外的任何數字除,結果為 Infinity 或 -Infinity。
16、除法(餘數)運算子由百分比符號(%)表示:
模數運算子也有特殊的行為:
- 如果被除數是 Infinity,或除數是 0,結果為 NaN。
- Infinity 被 Infinity 除,結果為 NaN。
- 如果除數是無窮大的數,結果為被除數。
- 如果被除數為 0,結果為 0。
17、加法也有一些特殊行為:
- 某個運算數是 NaN,那麼結果為 NaN。
- -Infinity 加 -Infinity,結果為 -Infinity。
- Infinity 加 -Infinity,結果為 NaN。
- +0 加 +0,結果為 +0。
- -0 加 +0,結果為 +0。
- -0 加 -0,結果為 -0。
- 如果兩個運算數都是字串,把第二個字串串連到第一個上。
- 如果只有一個運算數是字串,把另一個運算數轉換成字串,結果是兩個字串串連成的字串。
18、減法運算子也有一些特殊行為:
- 某個運算數是 NaN,那麼結果為 NaN。
- Infinity 減 Infinity,結果為 NaN。
- -Infinity 減 -Infinity,結果為 NaN。
- Infinity 減 -Infinity,結果為 Infinity。
- -Infinity 減 Infinity,結果為 -Infinity。
- +0 減 +0,結果為 +0。
- -0 減 -0,結果為 -0。
- +0 減 -0,結果為 +0。
- 某個運算子不是數字,那麼結果為 NaN。
19、關係運算子小於、大於、小於等於和大於等於執行的是兩個數的比較運算,比較方式與算術比較運算相同。
20、等號和非等號用於處理原始值,全等號和非全等號用於處理對象。等號由雙等號(==)表示,若且唯若兩個運算數相等時,它返回 true。非等號由驚嘆號加等號(!=)表示,若且唯若兩個運算數不相等時,它返回 true。為確定兩個運算數是否相等,這兩個運算子都會進行類型轉換。
21、類型轉換的規則:
- 如果一個運算數是 Boolean 值,在檢查相等性之前,把它轉換成數字值。false 轉換成 0,true 為 1。
- 如果一個運算數是字串,另一個是數字,在檢查相等性之前,要嘗試把字串轉換成數字。
- 如果一個運算數是對象,另一個是字串,在檢查相等性之前,要嘗試把對象轉換成字串。
- 如果一個運算數是對象,另一個是數字,在檢查相等性之前,要嘗試把對象轉換成數字。
22、運算子還遵守下列規則:
- 值 null 和 undefined 相等。
- 在檢查相等性時,不能把 null 和 undefined 轉換成其他值。
- 如果某個運算數是 NaN,等號將返回 false,非等號將返回 true。
- 如果兩個運算數都是對象,那麼比較的是它們的引用值。如果兩個運算數指向同一對象,那麼等號返回 true,否則兩個運算數不等。
重要提示:即使兩個數都是 NaN,等號仍然返回 false,因為根據規則,NaN 不等於 NaN。
些特殊情況,以及它們的結果:
| 運算式 |
值 |
| null == undefined |
true |
| "NaN" == NaN |
false |
| 5 == NaN |
false |
| NaN == NaN |
false |
| NaN != NaN |
true |
| false == 0 |
true |
| true == 1 |
true |
| true == 2 |
false |
| undefined == 0 |
false |
| null == 0 |
false |
| "5" == 5 |
true |
23、等號和非等號的同類運算子是全等號和非全等號。全等號由三個等號表示(===),只有在無需類型轉換運算數就相等的情況下,才返回 true。
24、非全等號由驚嘆號加兩個等號(!==)表示,只有在無需類型轉換運算數不相等的情況下,才返回 true。
25、簡單的賦值運算子由等號(=)實現,只是把等號右邊的值賦予等號左邊的變數。
26、算術運算以及其他幾個運算都有複合賦值運算子:
- 乘法/賦值(*=)
- 除法/賦值(/=)
- 模數/賦值(%=)
- 加法/賦值(+=)
- 減法/賦值(-=)
- 左移/賦值(<<=)
- 有符號右移/賦值(>>=)
- 無符號右移/賦值(>>>=)
27、用逗號運算子可以在一條語句中執行多個運算。
28、break 語句可以立即退出迴圈,阻止再次反覆執行任何代碼。
而 continue 語句只是退出當前迴圈,根據控製表達式還允許繼續進行下一次迴圈。
29、
30、
31、
32、
33、
34、
35、
36、
37、
38、
39、
40、
41、
42、
43、
44、
45、
46、
47、
48、
49、
50、
51、
52、
53、
54、
55、