首页 > Web开发 > 详细

js类型转换

时间:2019-09-08 00:31:59      阅读:129      评论:0      收藏:0      [点我收藏+]

强制类型转换

Number() 转换成数字,无法转换成数字的则返回NaN。

String() 可以将任何类型转换成字符串

Boolean()  可以将任何类型的值转换成布尔值。返回 false 的有:0、false、undefined、‘’、null、undefined

下面的链接中,最先面列举出来一些常见的值转换为number、string 和 boolean 后的值

https://www.runoob.com/js/js-type-conversion.html

隐式类型转换

需要了解运算符优先级https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

  • 四则运算计算原始值

+ 中只要其中一个是String类型,另一个值就会被转化为String类型,否则运算符两边的值都会被转化为Number类型。

  • 四则运算计算引用值

引用值调用toString转换为字符串,然后按照四则运算计算原始值的规则进行计算。(再调用toString之前还会调用valueOf方法返回原始值)

  • &&、||、! 调用Boolean()
  • If语句 调用Boolean()
  • 关系型运算符计算原始值(< > <= >= ==  !=)

调用Numbe,如果两边都是字符串,则逐为对比UNICODE标准字符集

特殊情况

null == null // ture

undefined == undefined // true

undefined == null /true

NaN 不等于任何数

  •  关系型运算符计算引用值(< > <= >= == !=)

如果两个都是引用值,比较栈内存的地址,只有一个则引用值调用toString转换为字符串,然后按照关系型运算符计算原始值的规则进行计算。(再调用toString之前还会调用valueOf方法返回原始值)(数组的toString方法返回‘’,对象的toString返回‘[object,Object]’)

[] == 0 // true   [].toString()//‘‘ => Number(‘‘)//0 == 0

![] == 0 // true    !Boolean([])//false => Number(false)//0 == 0

![] == [] //`true !Boolean([])//false => Number(false)//0 == [].toString()//‘‘ =>Number(‘’)//0

[] == [] // false   对比地址

{} == {} // false  对比地址

!{} == {} // false !Boolean({})//false => Number(false)//0 == {}.toString()//‘[object,Object]‘ => Number(’[object,Object]’)//NaN

  • !== === 不进行转换

js类型转换

原文:https://www.cnblogs.com/wangjie-nf/p/11484007.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!