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

    • !== === 不进行转换
  • 相关阅读:
    科研第四天
    科研第三天
    科研的第一天
    django_1.6.8学习笔记——创建project
    第一个project,累哭的第一个app
    前记
    线性表——单链表小结(腾讯面试题)(4)
    一个考试模拟界面——先记录一下下ui上的东东
    源码0602-05-掌握-多值参数
    源码0602-03-掌握-XML解析-NSXMLParser
  • 原文地址:https://www.cnblogs.com/wangjie-nf/p/11484007.html
Copyright © 2011-2022 走看看