Cha*_*tay 0 javascript indexing
如何从索引中减去1(或任何数字)而不减少它(如果它的值在变量中没有变化)?
这是我的代码片段:
if (i > 0 & areaImages[i].id == areaImages[i-1].id)
Run Code Online (Sandbox Code Playgroud)
我从Firebug收到此错误消息:
TypeError: areaImages[i - 1] is undefined
Run Code Online (Sandbox Code Playgroud)
什么都没有减少.实际的原因是你使用了错误的操作符.
if (i > 0 && areaImages[i].id == areaImages[i-1].id)
// ^^
Run Code Online (Sandbox Code Playgroud)
对于布尔值,都&和&&将返回相同的(高达==)的结果.但关键的区别在于,&&是短路,即当左手侧的&&IS false,然后右手边将不会进行评估.
原始代码的问题&是不会短路,因此areaImages[i-1].id即使是,也会进行评估i <= 0.但是i-1索引是无效的,因此areaImages[i-1]未定义,并且您无法从undefined获取属性,从而导致TypeError.
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |