摘要:布爾操作符邏輯非將操作數任何數據類型轉換為一個布爾值,并求反。除和以外的任何類型,此操作都會返回任何非空的類型,此操作都會返回連續使用兩個可達到函數同樣的效果。
布爾操作符 邏輯非(!)
將操作數(任何數據類型)轉換為一個布爾值,并求反。
!null; // true !undefined; // true !true; // false !false; // true !0; // true !NaN; // true !1; // false 除 0 和 NaN 以外的任何 Number 類型,此操作都會返回 false !""; // true !"s"; // false 任何非空的String類型,此操作都會返回false !Symbol(); // false
連續使用兩個 ! 可達到 Boolean() 函數同樣的效果。
!!null; // false // ...邏輯與(&&)
屬于短路操作,當第一個操作數求值結果為false(如果不為Boolean類型則存在一個隱形轉換),則不會再對第二個操作數求值,并返回第一個操作數;只有當第一個操作數位 true 才會返回第二個操作數(不論第二個操作數是 true 還是 false)。
const b1 = true; const result1 = (b1 && undefined_variable); // ReferenceError console.log(result1); const b2 = false; // 如果是非 Boolean 類型則會自動轉為 Boolean 類型 const result2 = (b2 && undefined_variable); console.log(result2); // false b1 && console.log("只有第一個操作數為真,我才會出現在控制臺") b2 && console.log("只有第一個操作數為真,我才會出現在控制臺")邏輯或(||)
同樣屬于短路操作,當第一個操作數求值結果為 true (如果不為Boolean類型則存在一個隱形轉換),則不會對第二個操作數求值,并返回第一個操作數;只有當第一個操作數為 false 才會返回第二個操作數(不論第二個操作數是 true 還是 false)。
const b1 = true; const result1 = (b1 || undefined_variable); console.log(result1); // false const b2 = false; const result2 = (b2 || undefined_variable); // ReferenceError console.log(result2); b1 || console.log("你在控制臺看不到我") b2 || console.log("我會出現在控制臺!因為b2 === false")加性操作符 加法
Number類型:
任何數加NaN,結果都是NaN
Infinity + Infinity = Infinity
Infinity - Infinity = NaN
-Infinity - Infinity = -Infinity
0 + 0 = 0
0 - 0 = 0
-0 - 0 = -0
操作數中包含 String 類型,則將非 String 類型轉為 String 類型并拼接。
Object、Boolean類型,則調用它們的toString()方法獲得字符串值。默認情況下 Object 類型返回 "[object Object]",Boolean類型 true 返回 "true"、false 返回 "false"
Undefined類型或Null類型: 調用 String() 取得字符串 "undefined"或 "null"
const s1 = "" + "s"; const s2 = "str" + { name: "Ashin" }; const s3 = "str" + true; const s4 = "str" + null; const s5 = "str" + undefined; console.log(s1); // "s" console.log(s2); // "str[object Object]" console.log(s3); // "strtrue" console.log(s4); // "strnull" console.log(s5); // "strundefined"減法 乘性操作符 乘法 除法 求模 關系操作符 相等操作符 相等和不相等 全等和不全等
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/105750.html
摘要:操作符還有可能是設計中最大缺陷,因為它幾乎是完全破損的。由于用法與調用函數的語法相似,因此常被誤以為是函數調用,實際上并不存在名為的函數,只是一個操作符而已。而列則表示對象內部的屬性。屬性文檔中明確地給出了獲得屬性的途徑,就是使用。 typeof 操作符(還有 instanceof)可能是 Javascript 設計中最大缺陷,因為它幾乎是完全破損的。由于 typeof 用法與調用函數...
摘要:重新鞏固系列,都是比較基礎的東西,可以進行查漏補缺,很快看完,這是第二篇。關系運算符用于比較操作符左右的操作數的大小。邏輯運算符主要通過與或非來判斷一個表達式的值是否為。注意與和或操作具有短路計算效果。重新鞏固JS系列,都是比較基礎的東西,可以進行查漏補缺,很快看完,這是第二篇。 其他JS重新鞏固系列: 重新鞏固JS(一)——JavaScript基本類型 重新鞏固JS(三)——JavaSc...
摘要:邏輯非操作符只能作用于單個邏輯操作數,其結果是把那個邏輯操作數所返回的布爾值取反。如果那個邏輯操作數所返回的布爾值是,邏輯非操作符將把它取反為為了避免產生歧義,上面這條語句把邏輯操作數放在了括號里,使邏輯非操作符作用于括號里的所有內容。 算術操作符 加減乘除這些算術操作中的每一種都必須借助于相應的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號。等號(=)、加...
摘要:邏輯非操作符只能作用于單個邏輯操作數,其結果是把那個邏輯操作數所返回的布爾值取反。如果那個邏輯操作數所返回的布爾值是,邏輯非操作符將把它取反為為了避免產生歧義,上面這條語句把邏輯操作數放在了括號里,使邏輯非操作符作用于括號里的所有內容。 算術操作符 加減乘除這些算術操作中的每一種都必須借助于相應的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號。等號(=)、加...
摘要:邏輯非操作符只能作用于單個邏輯操作數,其結果是把那個邏輯操作數所返回的布爾值取反。如果那個邏輯操作數所返回的布爾值是,邏輯非操作符將把它取反為為了避免產生歧義,上面這條語句把邏輯操作數放在了括號里,使邏輯非操作符作用于括號里的所有內容。 算術操作符 加減乘除這些算術操作中的每一種都必須借助于相應的操作符才能完成。操作符是JavaScript為完成各種操作而定義的一些符號。等號(=)、加...
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現在已經一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現將已經寫好的文章整理一個目錄,方便更多的小伙伴去學習。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
閱讀 2310·2021-11-22 12:01
閱讀 1983·2021-11-12 10:34
閱讀 4509·2021-09-22 15:47
閱讀 2827·2019-08-30 15:56
閱讀 2861·2019-08-30 15:53
閱讀 2398·2019-08-30 13:53
閱讀 3371·2019-08-29 15:35
閱讀 3119·2019-08-29 12:27