美文网首页
数据类型转换

数据类型转换

作者: 没了提心吊胆的稗子 | 来源:发表于2019-07-06 16:43 被阅读0次

    其他类型转换成number类型

    isNaN、Number、parseInt、parseFloat
    进行加减乘除数学运算的时候:1+null

    boolean : true -> 1   false - > 0
    string :  ' ' -> 0  '12' -> 12  '12px' -> 12/NaN  '前端' -> NaN
    null -> 0  undefined -> NaN
    object : {}, /^$/, function(){} -> NaN   [] -> 0  [12] -> 12  [12, 13] -> NaN
    // 引用数据类型转化数字,会先用toString转化为字符串,再调用Number把字符串转化为数字
    

    JS中的加减乘除
    +、-、*、/
    除了加法有特殊性,其他都只在非数字类型的时候调用Number再运算
    +号的特殊性在于当遇到字符串的时候,会进行字符串拼接而不是加法运算

    其他类型转换成string类型

    toString方法
    对象的toString方法转化为[object, Object],可用来做数据类型转换
    其余都是直接用单/双引号包起来,null、undefined也有toString方法,但不可用

    其他类型转换成布尔类型

    Boolean、!、!!、条件判断语句中
    只有0、NAN、null、unfinished、''转换成false,其余都是true

    if(3+'3px'){
      // 条件成立  3+‘3px’='33px'
    }
    if(3-'3px'){
      // 条件不成立  3-‘3px’=NaN
    }
    

    ==进行比较

    左右两边数据类型不相同,浏览器会默认转换为相同类型(一般为number类型)再比较,null和undefined例外,他俩跟其他任何值都不相等
    ===不会转换类型

    [] == [] // false   左边有一个自己的地址,右边也有,两个地址不一样
    // 对象和对象比较时,比较的是空间地址,不是相同的空间,结果就是false
    
    [] == 0 // true  对象和数字比较会把对象转化为数字
    ({}) == NaN // false  NaN 和自己都不相等
    
    [] == ''  // true  把两边都转化为数字0了  对象和字符串会把两边都转化成数字
    
    [] == true // false []->0 true->1  对象和布尔会把两边都转化成数字
    ![] == true // false ![] -> false ==优先级最低
    [] == false // true [] -> 0 false -> 0
    
    null == null // true
    null == undefined // true
    null === undefined // false
    null == 0  // false
    
    

    相关文章

      网友评论

          本文标题:数据类型转换

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