美文网首页
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里的数据类型转换

    在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。 1, 显式数据类型转换 a:转数字: 1)Numb...

  • JS隐式数据类型转换

    隐式数据类型转换介绍 前面有总结过 JS数据类型转换 Number(), toString(), parseInt...

  • JavaScript的显式转换和隐式转换

    js的显式转换和隐式转换都是数据类型的转换;js的数据类型是弱类型的,即可以给变量赋值为任意的数据类型,当进行运算...

  • 隐式转换 显示转换

    ####一.隐式转换 **1) 查看数据类型** *typeof* ```js 案例: v...

  • JS的基本小结

    JS基本输出方式 JS数据类型 变量 常量 变量常量小练习 声明提前 隐式转换 显示转换/强制转换

  • 隐式转换的规则

    问题:隐式转换的规则是什么 说起JS的隐式转换规则,我们可以说下JS的基础数据类型 JS的七中类型 我们所熟知的J...

  • JavaScript类型转换

    在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。 强制类型转换 即通过使...

  • JavaScript 01 (JS引入/变量/数据类型/类型转换

    JS的引入及调试,常量,字面量,变量,JS中的数据类型,JS的运算符,JS的运算符之隐式类型转换,强制类型转换,M...

  • Js汇总(一)

    一、Js数据类型: 二 、隐式转换 // + 加号 拼接/运算(如果在运算是里面 第 )// -减号 ...

  • Java数据类型与运算符

    隐式转换 在这段代码中就发生了隐式数据类型转换,本来是byte数据类型的y因为与int x相加,byte被隐式提升...

网友评论

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

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