SR0725 / github_blog_issue

0 stars 0 forks source link

JavaScript:'banana' #5

Open SR0725 opened 3 months ago

SR0725 commented 3 months ago

思考一下 ( 'ba' + + "Cat" + 'a' ).toLowerCase() 上面程式碼在 JS 中會怎麼運作呢?我:這應該... 直接炸掉吧? JavaScript:'banana' 我:???這是一個還蠻經典的 JavaScript 問題,你可以在 F12 當中跑跑看,你會發現他順利給了你一根香蕉 BUT WHY?JavaScript 的加號其實有兩個功能 1. 做加法運算(二元運算子) 當加號前後都有變數時,那很正常,就是做加法2. 當作 Number(一元運算子) 但是當加號只有後面有變數,前面沒有時,其功能會變成將後面的變數轉成數字,沒錯也就是變成 Number() 所以 ( 'ba' + + "Cat" + 'a' ).toLowerCase() 其實等同於 ( 'ba' + Number("Cat") + 'a' ).toLowerCase() Number("Cat") = 'NaN' // Not a Number 也就等於 ( 'baNaNa' ).toLowerCase() 香蕉就出來啦~程式笑話