javascript為什么需要隱式轉(zhuǎn)換?如果沒有會出現(xiàn)什么情況?
找了一圈沒有看到關(guān)于這個的討論,只好自己研究了,可能不一定正確,自行辨知。
郁悶就是郁悶在好好的,為什么要搞個隱式轉(zhuǎn)換,一般來講這樣去想不太可能想出個結(jié)果,畢竟這門語言不是自己寫的,如果換一個問題,可能會好點(diǎn),如果沒有隱式轉(zhuǎn)換javscript會成什么樣子?
比如下面這一段代碼:
console.log("10" - 1)
如果沒有隱式轉(zhuǎn)換,也許會報錯吧?或者返回NaN?,不太確定,但假如說javascript根本不存在隱式轉(zhuǎn)換,或許你不會這樣去寫代碼吧,那么就更奇怪了,設(shè)計隱式轉(zhuǎn)換究竟何目的?目前能想到的一點(diǎn)就是因為它是一門動態(tài)語言,值是運(yùn)行時才知道的,因此有很多不確定的因素,這可能是作者設(shè)計隱式轉(zhuǎn)換的目的吧。
什么是隱式轉(zhuǎn)換
console.log(1 + "2");//12
可以看到一個是Number類型的值和一個String類型的值進(jìn)行了相加,結(jié)果是12。那為什么是12呢?如果是按照數(shù)字相加應(yīng)該是3,但這里卻是將1和2進(jìn)行了字符串拼接,也就是說這里的1被轉(zhuǎn)換成了字符串1。
結(jié)論
如果兩個值(也可以是多個)的類型不同,但你卻拿它們來運(yùn)算,它們就會進(jìn)行隱式轉(zhuǎn)換,當(dāng)然也不只是運(yùn)算才會產(chǎn)生隱式轉(zhuǎn)換。
誰被轉(zhuǎn)換
網(wǎng)友評論