美文网首页
关于 1toString()、1.toString()、1..t

关于 1toString()、1.toString()、1..t

作者: 夜未央_M | 来源:发表于2018-11-29 14:37 被阅读246次
    1toString()    //报错,语法错误
    1.toString()   //报错,JS引擎无法确定这里的`.`是什么意思,是点运算符(对象方法)还是浮点数?
    1..toString()    //成功,运算结果"1" 解析: 第二个点被视为点运算符,前面的是浮点数。
    1.0.toString()   //成功,运算结果"1" 解析: 第二个点被视为点运算符,前面的是浮点数。
    1 .toString()    //成功,运算结果"1" 解析: 用空格和后面的.toString()隔开, 把前面的当成运算式处理
    1+2.toString() //报错,JS引擎无法确定这里的`.`是什么意思,是点运算符(对象方法)还是浮点数?
    1+2 .toString() //成功,运算结果"12" 解析: 用空格和后面的.toString()隔开, 把前面的当成运算式处理
    (1+2).toString() //成功,运算结果"3" 解析: 括号内部的先进行算法运算,在进行类型转换
    (1)+(2).toString() //运算结果"12" 解析: 括号内部进行类型修改并将数字n转换为字符串“n “,在进行拼接,然后再应用toString方法。
    (1)+(2)+0 .toString() //成功,运算结果"30" 解析: 如果有多个`+`号,且不包含中括号与""的情况下,则把最后一个加号之前的进行数学运算(不管他有没有被括号包住),最后一个加号留作拼接作用。
    (1)+(2)+0+(11) .toString() //成功,运算结果"311" 解析: 同上
    (1)+(2)+0+12 .toString() //成功,运算结果"312" 解析: 同上
    ([1]+[2]+[3])+12 .toString() //成功,运算结果"12312" 解析: 如果里面只有方括号(单个数值的数组),则+起连接作用
    ((1)+(2)+[3])+12+43 .toString()//成功,运算结果"331243" 解析: 如果里面包含圆括号,则先要进行运算,再把运算的结果与后面的内容拼接起来。
    (1)+(2)+6+2+5+"(15)"+1+0+(1) .toString() //成功,运算结果"16(15)101"解析: 如果字符串包裹的前面有多个加号,则把字符串双引号前面的进行运算(不管他有没有被圆括号包住),得到的数值拼接上字符串包裹的内容再拼接上之后的内容。
    

    废话不多说,请看下图




    1toString()

    很多时候我们只记得转换数据类的方法为toString,但是别忘了他前面还有个.
    如果不写这个. ,那么就是语法错误!


    1.toString()

    1.toString() 产生报错,1.toString(),JS引擎无法确定这里的.是什么意思,是点运算符(对象方法)还是浮点数?
    当整个行只有一个.的时候,要么用()包裹起来,要么用空格和后面的.toString()隔开。

    原始数据类型Number / interger上没有tostring方法,但是当你执行(1).toString()时,javascript在括号内部进行类型修改并将数字1转换为字符串“1 “,然后再应用toString方法。
    如果此时我们想检测数值类型,可以通过 typeof 来检测一下。




    1..toString()

    两个点,第一个点会被js当做浮点数,第二个点被视为点运算符。


    1.0.toString()

    同上,第二个点被视为点运算符,前面的是浮点数。




    (1.).toString()

    ()是分组运算符,它返回其中表达式的值。在你的情况下,它是1一个原始数字。所以它可以装入一个Number对象并调用它的方法toString。
    (1).toString(),(1)是一个表达式。


    1 .toString()

    数值后面跟一个空格,与分组运算符类似,其中a .用于调用方法。


    1+2.toString()、1+2 .toString()、(1+2).toString()、(1)+(2).toString()、(1)+(2)+0 .toString()、(1)+(2)+0+(11) .toString()、(1)+(2)+0+12 .toString()、(1)+(2)+(3)+12 .toString()、([1]+[2]+[3])+12 .toString()、[1]+[2]+[3]+12 .toString()

    "312"
    报错,JS引擎无法确定这里的.是什么意思,是点运算符(对象方法)还是浮点数?

    相关文章

      网友评论

          本文标题:关于 1toString()、1.toString()、1..t

          本文链接:https://www.haomeiwen.com/subject/pfxfcqtx.html