资讯专栏INFORMATION COLUMN

不可能的等式 -- JavaScript的谜团

everfly / 2830人阅读

摘要:尝试着尽可能独立于数据类型。一般情况下,会自动做类型转换,使得一个表达式可以被正常运行而不是。但是,这和新手预期的还是挺不一样的。比如说,并不会被看成,而是。也不会被计算成。很多简单的检测是否相等的式子很容易出错。第一个式子并没有显示。

JaveScript 尝试着尽可能独立于数据类型。一般情况下,JavaScript会自动做类型转换,使得一个表达式可以被正常运行而不是 fail。但是,这和JS新手预期的还是挺不一样的。比如说,1+“1” 并不会被看成 2,而是 string “11”。1==“1” 也不会被计算成 true。很多简单的检测是否相等的式子很容易出错。

谜题:

if(a==b)alert("a equals b");
if(a==0)alert("a is zero");
if(b==0)alert("b is zero");

上面这段代码一开始运行得挺好,后来出现了一个小 bug。
第一个式子并没有显示 "a equals b"。
第二个式子显示了 "a is zero".
第三个式子显示了 "b is zero"
既然 a 和 b 是不相等的,为什么 a 是 0,b 也是 0 呢?到底发生了什么? a 和 b 是什么样的值才会导致这样的结果?答案明天揭晓

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/79247.html

相关文章

  • JavaScript检查颜色冲突

    摘要:也许这些是预先制作的配色方案,公司颜色或从图像中提取。第二个等式称为,因为它将颜色空间转换为,这考虑了其组成部分的不同影响。根据该值的位置,我们将返回相应的最高对比色。红色和粉红色值显示白色文本而不是黑色。 注意:本文非原创,而是翻译国外大师文章,布赖恩苏达。布赖恩苏达是一位信息大师,每天都在努力使网络变得更加美好。自从90年代中期发现互联网以来,Brian Suda已经花了很多时间与...

    littlelightss 评论0 收藏0
  • 翻译:Javascript原始值解析

    摘要:结论最后证明相对于对原始值赋值,给对象赋值是它的一个唯一优势。而且,原始值是不可变的,你不可能通过改变他们的属性值来修改他们。而且,我认为对原始值深刻的理解,以及当使用他们的时候知道具体发生了什么是深入理解这门语言迈出重要的一步。 第一次翻译,可能有很多地方不恰当,欢迎指正。 原文地址:http://javascriptweblog.wordpress.com/2010/09/27/...

    yeyan1996 评论0 收藏0
  • JavaScript中让x==1&&x==2&&x==3等式成立演示

      要是别人问您:如何让 x 等于 1 且让 x 等于 2 且让 x 等于 3 的等式成立?  咋地,知道如何实现?想骂人有不  现在我们一起来分解思路:  我们先来讲讲宽松相等== 和严格相等 ===,这两个都能用来判断两个值是否相等,但们明确上文提到的等于指的是哪一种,二者的区别看下:  (1) 这两个基础直接的区别:  (1.1) 不同类型间比较,== 比较转化成同一类型后的值看值是否相等,...

    3403771864 评论0 收藏0
  • 扑朔迷离属性和特性【彻底弄清】

    摘要:从学习前端以来,属性和特性已困惑我很久。注意啦,属性和特性的一个关系出现了。以下除外属性表明节点的类型。与之前了解到的特性用来描述属性的行为并无出入。下面,我们一起来看看属性和特性是如何访问的。操作特性的方法主要有三个,分别是和。 从学习前端以来,属性和特性已困惑我很久。今天使用jQuery时,又踩到了这个坑。于是下定决心,彻底搞懂它。 一、对象、属性和特性的关系 先来看一下词典的解释...

    pinecone 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<