JS数据类型之间的转换

2019-02-24  本文已影响0人  印第安老斑鸠_333

Number,String,Boolean,Object,Undefined,Null,symbol(ES6);这七种数据类型的值是可以互相转换的。(这里不讲symbol)。

1.其他类型的值转换为String:

    罗列出以下几种方法供参考:

    ①,value.toString();

    ②,String(value);

    ③,与空字符串相加:value+''

    PS: toString方法不能转换null与undefined,会报错,因为这两种值没有toString方法。其余转换字符串的方法就没有什么限制。

    罗列其他类型转换字符串后的值供参考:

    1  >>>>>  '1'

    true  >>>>>  'true'

    unll  >>>>>  'null'

    undefined  >>>>>  'undefined'

    {'有属性':'或没属性'}  >>>>>  '[object object]'

    function(){}  >>>>>  'function(){}'

    [ ]  >>>>>  ''

    [1,2,3]  >>>>>  '1,2,3'

   PS:黑体部分,也就是函数与数组,他俩属于object类型。

2.其他类型的值转换为Number:

    罗列一下方法供参考:

    ①,Number(value);

    ②,取正运算:+value;

    ③,减零运算:value-0

    ④,将字符串转换为整数:parseInt(value, 进制);详见MDN   

    PS:如果value不是字符串,会先转字符串。第二个参数务必别省略,用哪种进制解析value是它决定的。省略不写就默认认十进制。转换从左往右进行,碰到第一个非数字停止,但是会忽略空格。没有数字返回NaN。见下例:

    例:1. parseInt(1qw,10)  >>>>>  '1qw'  >>>>>1

           2. parseInt(null,10)  >>>>>  'null'  >>>>>NaN

           3. parseInt('   1n  u  ll',10)  >>>>>   '1n  u  ll'  >>>>>1

    ⑤,将字符串转换为浮点数:parseFloat(value);详见MDN

     PS:如果value不是字符串,会先转字符串。转换从左往右进行,碰到第一个“非数字也非小数点”的字符停止,若满足转换的首位是数字则会忽略数字前面空格若满足转换的首位是小数点则会忽略小数点前面空格。数字与小数点之间的空格不忽略。没有数字或小数就返回NaN。很拗口很难理解,见下例。

    例:1. parseFloat('   .1 q we')  >>>>> 0.1;  //首位小数点,忽略前空格

            2. parseFloat('   1   .123   q we')  >>>>> 1; //首位数字,忽略前空格

            3. parseFloat('   a1  a .123   q we')  >>>>> NaN;//首位非数字非小数点

            4 .parseFloat('   1   .123   q we')  >>>>> 1;//首位数字,忽略前空格,数字与小数点之间有空格,停止转换。

    罗列其他类型的值转换为数值供参考:

    '1.33e4'     >>>>>  13300

    '3wer'        >>>>>   NaN

    true           >>>>>   1

    false          >>>>>   0

    null            >>>>>   0

    undefined  >>>>>   0

    {a:123}       >>>>>  NaN

    function (){}>>>>> NaN

     [1,2,3 ]      >>>>>  NaN

     [ ]              >>>>>  0

     ['']              >>>>>  0

     ['1']            >>>>>  1

     [1]             >>>>>  1

3,其他类型的值转换为Boolean:

    罗列以下方法供参考:

    ①,Boolean(value);

    ②,!!value;

    罗列其它数据类型转换为布尔值供参考:

    null,undefined,0,'',NaN,0.0转换为布尔值为false,其余所有值全为true。

                                                                                                                                以上

上一篇下一篇

猜你喜欢

热点阅读