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,这时候就是自动类型转换所主导。

**第一次写博客,如有问题多多担待(//▽//)~~~~~~~**

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