JS的类型转换

JS的数据类型:

首先, JS的数据类型分为基本数据类型和引用数据类型
基本数据类型:

  • string
  • number
  • null
  • undefined
  • boolean
  • symbol

引用数据类型:

  • object
  • Array
  • Date
  • Math
  • function
  • RegExp
  • Number
  • String
  • Boolean

JS数据类型之间的转换

在 JS 中的类型转换都会转换成以下 3 种类型
转为 String 可以使用以下方法进行转换 String() 、toString()
转为 Boolean 可以使用 Boolean()
转为 Number 可以使用 Number() 、parseFloat() 、parseInt()

类型转换分为两种:隐式类型转换、显式类型转换
  • 显式类型转换
    指通过编写代码在类型之间进行转换,例如:var.toString()、Number(val)

  • 隐式类型转换
    指在对不同类型的值使用运算符时,值可以在类型之间自动的转换, 例如:100 + true

    1、+运算符
    a、字符串参与的+运算符操作
    字符串与任何类型的值做+运算,都是将其他类型转换成字符串后做拼接操作

        'aa' + 1 // aa1
        'aa' + 'bb' // aabb
        'aa' + true // aatrue
        'aa' + null // aanull
        'aa' + undefined // aaundefined 
    

    b、数字参与的+运算符操作

       1 + true // 2
       1 + null // 1
       1 + undefined // NaN 
    

    c、布尔值参与的+运算符操作

      如果存在布尔值进行运算,先将布尔值转换成数字或字符串后进行计算
      布尔值遇到字符串,则转换成字符串
      布尔值遇到数字,则转成数字
    

    d、Null和Undefined参与的+运算符操作

       如果和数字进行计算,null会转化为0,undefined会转化成NaN
       Null遇到字符串则转换成字符串,遇到数字则转换成0,遇到布尔值则布尔值和Null都转换成数字再进行运算
       Undefined遇到字符串则转换成字符串,遇到数字则转换成NaN,遇到布尔值则布尔值和Undefined都转换成数字再进行运算
    

    2、-运算符
    任何类型的数值遇到-运算符都会先将自身类型转换成数字之后在进行运算
    a、字符串参与的-运算符

        字符串遇到-运算符会转换成数字
    

    b、布尔值参与的-运算符操作

      布尔值遇到-运算符会转换成数字
    

    c、Null和Undefined参与的-运算符操作

     null会转化为0,undefined会转化成NaN
    

    3、==运算符
    Number、Boolean、Null、Undefined进行比较的时候都会将运算数转换为数字,然后再进行比较
    Undefined和Null比较特殊,它们两个使用==运算符返回值是true。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容