找了一圈沒(méi)有看到關(guān)于這個(gè)的討論,只好自己研究了,可能不一定正確,自行辨知。
郁悶就是郁悶在好好的,為什么要搞個(gè)隱式轉(zhuǎn)換,一般來(lái)講這樣去想不太可能想出個(gè)結(jié)果,畢竟這門語(yǔ)言不是自己寫的,如果換一個(gè)問(wèn)題,可能會(huì)好點(diǎn),如果沒(méi)有隱式轉(zhuǎn)換javscript會(huì)成什么樣子?
比如下面這一段代碼:
console.log("10" - 1)
如果沒(méi)有隱式轉(zhuǎn)換,也許會(huì)報(bào)錯(cuò)吧?或者返回NaN?,不太確定,但假如說(shuō)javascript根本不存在隱式轉(zhuǎn)換,或許你不會(huì)這樣去寫代碼吧,那么就更奇怪了,設(shè)計(jì)隱式轉(zhuǎn)換究竟何目的?目前能想到的一點(diǎn)就是因?yàn)樗且婚T動(dòng)態(tài)語(yǔ)言,值是運(yùn)行時(shí)才知道的,因此有很多不確定的因素,這可能是作者設(shè)計(jì)隱式轉(zhuǎn)換的目的吧。
什么是隱式轉(zhuǎn)換
console.log(1 + "2");//12
可以看到一個(gè)是Number類型的值和一個(gè)String類型的值進(jìn)行了相加,結(jié)果是12。那為什么是12呢?如果是按照數(shù)字相加應(yīng)該是3,但這里卻是將1和2進(jìn)行了字符串拼接,也就是說(shuō)這里的1被轉(zhuǎn)換成了字符串1。
結(jié)論
如果兩個(gè)值(也可以是多個(gè))的類型不同,但你卻拿它們來(lái)運(yùn)算,它們就會(huì)進(jìn)行隱式轉(zhuǎn)換,當(dāng)然也不只是運(yùn)算才會(huì)產(chǎn)生隱式轉(zhuǎn)換。
誰(shuí)被轉(zhuǎn)換
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無(wú)線安全]玩轉(zhuǎn)無(wú)線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問(wèn)題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來(lái)看看(二) 2017-07-26