javascript - 为什么此警报返回未定义

标签 javascript

alert(0==false);   //true; as expected
alert("a"[0]);     //a; as expected
alert("a"[false]); //undefined; why?

那为什么呢?

最佳答案

每当您尝试通过括号表示法访问属性时,表达式的值都会转换为字符串。因此,"a"[false]实际上是"a"['false'],而"a"[0]实际上是“a”['0']。两个属性名称显然非常不同..

0==false中,false被转换为数字,它确实是0

<小时/>

换句话说:Number(false)String(false) 产生两个不同的值,因此,即使 0 == false >, "a"[0] !== "a"[false].

关于javascript - 为什么此警报返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374754/

相关文章:

javascript - 如何使文本在另一个 div 内动态更改宽度的 div 上居中?

javascript - 如何将 boolean 对象分配给值?

javascript - 在 iOS Safari navigator.plugins 中找不到 Acrobat Reader

javascript - 如何使用 watch 函数计算对象的总和

javascript - 缩放(中心) map 到 OpenLayers 3 中的标记

javascript - Jquery - 延迟鼠标移出事件

javascript - 如何在 charts.js 中旋转饼图?

javascript - react : Pass function property down to pure child component - Rerendering

javascript - 如何使用带有按钮触发器的 javascript 和 jQuery 旋转 css 3d 立方体

javascript - 如何使用 Bootstrap 为点击的元素创建具有滚动和溢出功能的 Facebook 固定侧边栏?