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