JavaScript的自動類型轉換和字符串與數字相加減

開始啦~~~~

  • 因爲第一次接觸JavaScript,原以爲這門語言和java應該差不太多,之後學了一半後發現這裏面的+ - 字符串什麼的都很有講究,以至於得研究研究。
  • 因爲JavaScript是弱類型的語言所以在變量的轉化上比java自由很多,很多時候都是系統自動幫你轉也就出現了以下的情況
    10-“3”=7
  • 這裏可以得出系統會自動幫你把字符串的3轉化成數字3,繼而繼續運算,然後我又輸入了字母
  • 10-“A”=NaN
  • NaN的定義是用於引用特殊的非數字值,而且類型是number,所以這裏可以理解爲系統想幫你從string類型轉化成number類型,但是因爲字母的原因不能轉化成具體的數字,所以就就轉化成特殊值也就是NaN,因爲NaN是個很特殊的值因爲它自己跟自己比較都會返回false,所以10-NaN自然也就返回了NaN。
    然後到這我以爲我懂了但是接下來的結果又讓我懵逼了一會,
    10+“1”=“101”
    10+“A”=“10A”

|在這裏插入圖片描述

說好的自動轉化呢!!!!!
不慌能圓!於是我又做了一系列的實驗
10+1+“1”=“111”
10+“1”+1=“1011”
10+“1”+1+1=“10111”
10+“1”+“A”=“101A”
10-“1”+1=10
10-“A”+“A”=“NaNA”
做了加減,自然也少不了乘除
10/2=5
10/“2”=5
10/“A”=NaN
10/“2”+“A”=“5A”
10/“A”+“A”=“NaNA”
10乘2=20
10* “2”=20
10*“A”=NaN
10*“2”+“A”=20A
10*“A”+“A”=“NaNA”

  • 乘除沒出現奇怪的現象

可以清晰地看出程序是從左運行到右的,並且字符串和number類型用+號連接時都是拼接了字符串,不管字符串在前還是在後,都不會進行數字運算,只是進行字符串的拼接。
爲了結論的普適性我又做了以下的實驗
“2”+null=“2null”
“2”+undefined=“2undefined”
“2”+false=“2false”

可以總結出字符串與任意數據類型用加號連接,都表示字符串的拼接!!!!!!

然後閒出毛病的我又做了幾個實驗
“1”-“1”=0
“1”-1=0
1-“A”=NaN
“10”/“2”=5
“10”*“2”=20
當不是+號時JavaScript是能轉就轉是要是個數字樣子就給你轉成數字,轉不了就NaN,這時候就是數據類型自動轉換的天下了!!!!

  • 最後最後的總結

字符串與任意數據類型用加號連接,都表示字符串的拼接!!!!!!

但是用減號除號乘號連接時能轉就轉是要是個數字樣子就給你轉成數字,轉不了就NaN,這時候就是自動類型轉換所主導。

**第一次寫博客,如有問題多多擔待(//▽//)~~~~~~~**

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章