zoukankan      html  css  js  c++  java
  • js类型转换

    强制类型转换

    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

    • !== === 不进行转换
  • 相关阅读:
    计数排序
    epel
    Web开发:我希望得到的编程学习路线图
    第五章:if语句与运算符
    java web学习建议
    第四章:c++数据类型
    第二章:做一个最简单的c++程序
    linux的商业应用
    第三章:初步了解函数
    解析Linux商业应用现状
  • 原文地址:https://www.cnblogs.com/wangjie-nf/p/11484007.html
Copyright © 2011-2022 走看看