JS数据类型转换规则

简介: JS数据类型基础类型StringBooleanNumberSymbolUndefineNull(typeof(null) === "object")复合类型: 对象Object(Array, Json)显示类型转换...

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()

目录
相关文章
|
8天前
|
JavaScript
JS 获取对象数据类型的键值对的键与值
JS 获取对象数据类型的键值对的键与值
|
1月前
|
JavaScript 前端开发
JavaScript 中有哪些数据类型?
JavaScript 中有哪些数据类型?
18 3
|
1月前
|
JavaScript
JS常用数据类型转换
JS常用数据类型转换
13 1
|
1月前
|
存储 JavaScript 前端开发
javascript的8中数据类型
javascript的8中数据类型
|
1月前
|
JavaScript 前端开发 开发者
编程笔记 html5&css&js 071 JavaScript Symbol 数据类型
编程笔记 html5&css&js 071 JavaScript Symbol 数据类型
|
1天前
|
JavaScript 前端开发
js数据类型有几类?一共有几种?判断数据类型的方法是什么?
js数据类型有几类?一共有几种?判断数据类型的方法是什么?
|
3天前
|
存储 JavaScript 前端开发
JavaScript的引用数据类型主要包括对象
【4月更文挑战第16天】JavaScript的引用数据类型主要包括对象
16 4
|
1月前
|
JavaScript
|
1月前
|
JSON JavaScript 前端开发
js如何正确判断数据类型
js如何正确判断数据类型
24 0
|
1月前
|
JavaScript 前端开发 API
javascript中的数据类型
javascript中的数据类型