摘要:一般存在四種情況,會對變量的數據類型進行轉換。但在語句中,則轉為。
目錄一般存在四種情況,JavaScript會對變量的數據類型進行轉換。
* if中的條件會被自動轉為Boolean類型 * 會被轉為false的數據 * 會被轉為true的數據 * 參與+運算都會被隱式的轉為字符串 * 會被轉為空字符串的數據 * 會被轉為字符串的數據 * 會被轉為數據類型標記的數據 * 參與*運算都會被隱式的轉為數字 * 會被轉為0的數據 * 會被轉為1的數據 * 會被轉為NaN的數據 * == 運算符 * 為true的時候 * 為false的時候if中的條件會被自動轉為Boolean類型 會被轉為false的數據
if(false) console.log(2333) if("") console.log(2333) if(null) console.log(2333) if(undefined) console.log(2333) if(NaN) console.log(2333)會被轉為true的數據
if(true) console.log(2333) // 2333 if("test") console.log(2333) // 2333 if([]) console.log(2333) // 2333 if({}) console.log(2333) // 2333參與+運算都會被隱式的轉為字符串 會被轉為空字符串的數據
"str-" + "" // str- "str-" + []會被轉為字符串的數據
"str-" + "1" // "str-1" "str-" + 1 // "str-1" "str-" + false // "str-false" "str-" + true // "str-true" "str-" + null // "str-null" "str-" + undefined // "str-undefined" "str-" + NaN // "str-NaN"會被轉為數據類型標記的數據
"str-" + {} // "str-[object Object]" "str-" + {a:1} // "str-[object Object]"參與*運算都會被隱式的轉為數字 會被轉為0的數據
2 * "" // 0 2 * [] // 0 2 * false // 0會被轉為1的數據
2 * "1" // 2 2 * [1] // 2 2 * true // 2會被轉為NaN的數據
2 * {} // NaN 2 * {a:1} // NaN== 運算符 為true的時候
0 == false // true 0 == "" // true 0 == "0" // true 0 == [] // true 0 == [0] // true 1 == true // true 1 == "1" // true 1 == [1] // true [1] == true // true [] == false // true為false的時候
0 == {} // false 0 == null // false 0 == undefined // false 0 == NaN // false 1 == {} // false 1 == null // false 1 == undefined // false 1 == NaN // false [] == [] // false [1] == [1] // false [1] == {} // false [1] == {a:1} // false [1] == false // false [1] == null // false [1] == undefined // false [1] == NaN // false {} == {} // false {a:1} == {a:1} // false
注:空數組[],在+運算符下是轉為空字符串"",在*運算符下是轉為數字0。但在if語句中,則轉為true。
歡迎關注前端進階指南微信公眾號:
另外我也創了一個對應的QQ群:660112451,歡迎一起交流。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/85088.html
摘要:綁定書中提到在中,實際上并不存在所謂的構造函數,只有對于函數的構造調用。規則使用構造調用的時候,會自動綁定在期間創建的對象上。指向新創建的對象綁定比隱式綁定優先級高。 showImg(http://ww1.sinaimg.cn/large/005Y4rCogy1fstcwvzkjzj30sg0g0qqn.jpg); 前言 最近正在看《你不知道的JavaScript》,里面關于this綁...
摘要:不允許隱式轉換的是強類型,允許隱式轉換的是弱類型。拿一段代碼舉例在使用調用函數的時候會先生成一個類模板運行時生成,執行的時候會生成類模板,執行的時候會生成類模板。 0 x 01 引言 今天和一個朋友討論 C++ 是強類型還是弱類型的時候,他告訴我 C++ 是強類型的,他和我說因為 C++ 在寫的時候需要 int,float 等等關鍵字去定義變量,因此 C++ 是強類型的,我告訴他 C+...
摘要:設計模式是以面向對象編程為基礎的,的面向對象編程和傳統的的面向對象編程有些差別,這讓我一開始接觸的時候感到十分痛苦,但是這只能靠自己慢慢積累慢慢思考。想繼續了解設計模式必須要先搞懂面向對象編程,否則只會讓你自己更痛苦。 JavaScript 中的構造函數 學習總結。知識只有分享才有存在的意義。 是時候替換你的 for 循環大法了~ 《小分享》JavaScript中數組的那些迭代方法~ ...
摘要:綁定最后要講的一種綁定規則,是指通過操作符調用構造函數時發生的綁定。因此,所謂的綁定是指通過操作符來調用函數時,會產生一個新對象,并且會把構造函數內的綁定到這個對象上。事實上,在中,使用來調用函數,會自動執行下面的操作。 轉載請注明出處 https://segmentfault.com/a/11... this 可以說是 javascript 中最耐人尋味的一個特性,就像高中英語里各種...
摘要:真正的理解閉包的原理與使用更加透徹綁定的四種規則機制你不知道的人稱小黃書,第一次看到這本書名就想到了一句話你懂得,翻閱后感覺到很驚艷,分析的很透徹,學習起來也很快,塊級作用域語句語句相當于比較麻煩而且用在對象上創建的塊作用域僅僅在聲明中有效 真正的理解閉包的原理與使用 更加透徹this綁定的四種規則機制 你不知道的JavaScript 人稱小黃書,第一次看到這本書名 就想到了一句話...
閱讀 423·2019-08-29 12:44
閱讀 3001·2019-08-26 17:49
閱讀 2398·2019-08-26 13:40
閱讀 1180·2019-08-26 13:39
閱讀 3656·2019-08-26 11:59
閱讀 1814·2019-08-26 10:59
閱讀 2454·2019-08-23 18:33
閱讀 2687·2019-08-23 18:30