JS数据类型转换规则

作者: zhaoolee | 来源:发表于2018-03-11 18:16 被阅读119次

JS数据类型

基础类型

  • String
  • Boolean
  • Number
  • Symbol
  • Undefine
  • Null(typeof(null) === "object")

复合类型: 对象

  • Object(Array, Json)

显示类型转换

Number的原始类型转换规则

  • 数值转换后还是数值
  • 字符串如果可以解析为数值则为数值, 空字符串为0, 无法解析的字符串为NaN
  • 布尔转数值, true转为1, false转为0
  • null转换为0
原始类型转换Number

Number的对象类型转换规则

传入实例M, 先调用M的valueOf(), 如果返回值V为基本数据类型, 则直接使用Number(V), 求最终返回值
如果T不属于基本数据类型, 则调用M的toString(), 如果返回值S为基本数据类型, 则直接使用Number(S),求最后的结果, 如果S不属于基本数据类型, 则直接返回NaN

对象类型转换1
对象类型转换2

String的原始类型转换规则

  • 数值(Number)转为相应的字符串
  • 字符串(String) 转换后还是字符串
  • 布尔值(Boolean)转换规则: true => 'true', false=> 'false'
  • undefine 转换为"undefine"
  • null 转换为'null'
String原始类型转换

String 的对象类型转换规则

与Number的对象转换规则类似, 区别是: 先调用对象的toString(), 然后再调用valueOf()
其实正常情况下, 对象调用自身的toString()后, 对象就可以转换为string基本类型, valueOf() 没有机会被调用, 但万事有个例, 如果我们重新定义了对象的toString()方法,使其返回非基本类型的值, 那样就有机会调用对象的valueOf()方法了

String对象类型转换规则

Boolean的原始类型转换 和 对象类型转换

undefined,null,NaN,'',-0,+0皆为false, 其余为true

隐式类型转换

四则运算+, -, *, /

隐式类型转换之四则运算

判断语句 if()

Native调用 console.log(), alert()

相关文章

  • 隐式转换的规则

    问题:隐式转换的规则是什么 说起JS的隐式转换规则,我们可以说下JS的基础数据类型 JS的七中类型 我们所熟知的J...

  • JS数据类型转换规则

    JS数据类型 基础类型 String Boolean Number Symbol Undefine Null(ty...

  • NumPy API(六)——输入和输出数据类型操作

    数据类型操作 can_cast(from_, to[, casting]) 如果根据强制转换规则在数据类型之间进行...

  • JS数据隐式转换

    一、js中的不同的数据类型之间的比较转换规则如下: 1. 1 对象和布尔值比较 对象和布尔值进行比较时,对象先转换...

  • js各数据类型的boolean转换规则

    boolean转换规则如下 so,千万别拿{}和 [ ]当false处理,正确的姿势应该是:

  • Java基础学习一 基本数据类型

    基本数据类型 1.Java程序体解读 2.基本数据类型 关于基本数据类型之间的相互转换,转换规则: 1,八种基本数...

  • 数据类型转换(未完成...)

    了解 js有很多场景都会发生自动转换,所以有必要了解转换规则。 转换规则 转数值 转字符串 转布尔值 转对象 自动...

  • C++中的类型转换函数

    基础类型转换 标准数据类型之间会进行隐式的类型安全转换 转换规则如下:(char -> short)-> int ...

  • js知识点

    数据类型 转换规则是除了下面六个值被转为false,其他值都视为true。 undefined null fals...

  • JS的类型转换

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

网友评论

    本文标题:JS数据类型转换规则

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