要努力啊小汤!
当你的才华还不足以撑起你的野心时,你应该静下心学习!!!

数据类型的转换(变量)——

2020-11-05 13:52:01


变量的数据类型只有在表达式运行后才知道,因为控制数据类型的是表达式而不是一开始就定义的数据

可以通过自动或者是手动强制转换数据类型


手动强制转换数据类型函数:Number()、String()、Boolean()--------显示转换

Number():

  1. 比printInt()严格,只要有一个字符无法转为数值,整个字符串就会被转为NaN
    parseInt('42 cats') // 42
    Number('42 cats') // NaN

     都会自动过滤前导和后缀的空格

  2. array对象的时候,
    先调用对象自身的valueof()方法,将对象先转换为原始类型值,再用Number()转换;
                                                     对象还是对象值的话,用toString()转换成原始类型值,再用Number()转换;
                                                     对象还是对象值的话,输出NaN
    Number({a: 1}) // NaN
    Number([1, 2, 3]) // NaN
    Number([5]) // 5

String():

  1. 将任意类型的值转化成字符串;
  2. 原始类型值:
    数值:转化成相应的字符串;
    字符串:不变;
    underfined:‘underfined’;
    null:‘null’;
    boolean:‘true’ or 'false'
  3. 对象:返回类型字符串;
    String({a: 1}) // "[object Object]"
  4. 数组:返回数组字符串;

Boolean():

  1. 将任意类型的值转为布尔值;
  2. underfined、null、0、NaN、''都为false;其他为true

自动转换数据类型-----------------------------------------------------------------隐式转换

  1.  不同类型的数据运算;
    123 + 'abc' // "123abc"
  2.  对非布尔值类型的数据求布尔值
    if ('abc') {
      console.log('hello')
    }  // "hello"
  3.  对非数值类型的值使用一元运算符:+ -
    + {foo: 'bar'} // NaN
    - [1, 2, 3] // NaN

     


 

如果一个数据类型既能转换为数值数据类型,也能转换为字符串数字类型,那么优先转换为数值数据类型;

由于自动转换数据类型不稳定,

所以要求在定义数据类型的时候,优先使用函数强制转换数据类型;

 

posted on 2020-11-05 16:51  做一个有趣的妞儿  阅读(111)  评论(0)    收藏  举报