美文网首页
js数据类型隐式转换

js数据类型隐式转换

作者: 不要变成发抖的小喵喵喵喵喵喵 | 来源:发表于2018-05-09 09:40 被阅读0次
    var a = {
        value: 2,
        toString: function(){
            return ++this.value;
        }
    }
    if(a == 3 && a == 4){
        console.log("js is amazing!");
    }
    
    js is amazing

    原理分析:

    1. 因为a是个对象,对象与原始类型进行比较的时候会将对象转换成原始类型,对象转换成原始类型就是依据valueOftoString的返回值。
    2. 先调用valueOf返回它本身,不是原始类型,因此再调用toString
    3. 第一次判断a==3的时候toString的值为++2也就是3,以此类推第二次判断的是a转换后的值为4,所以if条件成立。

    相关文章

      网友评论

          本文标题:js数据类型隐式转换

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