【Js】JavaScript数据类型隐式转换

本文详细探讨了JavaScript中的数据类型隐式转换,包括转换为Boolean、String和Number的规则,以及运行环境的影响。重点讲解了复杂数据类型的转换规则,如valueOf()和toString()的调用顺序。此外,还分析了操作符(如比较和加号)如何影响数据的类型转换,并通过实例解析了转换规则。文章最后讨论了隐式转换的应用和toPrimitive()函数的执行流程。
摘要由CSDN通过智能技术生成

JavaScript数据类型隐式转换

引言——面试题

在讲JavaScript的数据类型隐式转换前,我们先看道面试题:

console.log(new String('abc') == true)

console.log({
   } == true)

console.log([] == ![])

结果是什么呢?

先把结果写下来,放在一边,然后继续看

一、js中的数据类型隐式转换的三种情况

  1. 转换为boolean类型
  2. 转换为number类型
  3. 转换为string类型

二、js中数据类型转换的规则

1、转为Boolean类型

  • 转换条件:

    数据在 逻辑判断逻辑运算 之中会隐式转换为boolean类型

  • 转换规则表
    数据类型 转换为true的值 转换为false的值
    String 任何非空字符串 空字符串(""或’')
    Number 任何非零数字 0和NaN
    Object 任何对象 null
    Undefined 不适用 undefined
  • tips
    • 注意字面量形式、包装器方式,new 方式的区别,new操作符创建的隐式转换为Boolean都是true

      var a = 'Davie'                  //申明的是一个string类型,它是一个基本类型
      var a = String('Davie')          // String()是一个包装类,用于将参数转换成string类型
      var a = new String('Davie')     //采用new方式时创建了一个object类型
      

      使用typeof验证上面的结论

      var a='Davie'
      console.log(typeof a) //string
      
      console.log(typeof String(a)) //string
      
      console.log(typeof(new String(a))) //object
      
    • 连续使用两个非操作符(!!)可以将一个数强制转换为boolean类型,这在开发之中比较实用。

2、转换为 string 类型

  • 简单数据转换字符串对照表:
    原始数据类型 转换之后的值
    数字类型 数字类型的字符表示
    null ‘null’
    undefined ‘un
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值