for(var i = 0; i < aLi.length; i++) {
aLi[i].index = i; //aLi[i].index 为什么这里可以定义index,属性访问表达式不是必须存在才可以,不然会报错的吗?
还有个小问题,i代表下标,aLi[i]是下标里的元素的值吗?
for(var i = 0; i < aLi.length; i++) {
aLi[i].index = i; //aLi[i].index 为什么这里可以定义index,属性访问表达式不是必须存在才可以,不然会报错的吗?
还有个小问题,i代表下标,aLi[i]是下标里的元素的值吗?
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
看起来你js的基本语法好像不是很清楚的样子,推荐阮老师的教程
先回答小问题:
然后是主要的问题:
你执行了
aLi[i].index = i;
这一句,说明aLi[i]
是一个对象首先要明确的一点是,这是一个赋值操作
如果
index
属性不存在aLi
中,js会帮你声明这个属性,并且用i
的值来初始化它;如果index
属性已经存在于aLi
中,js会将aLi.index
的值设为i
的值我想,你说的应该是,变量没定义, 会报错, 比如:
假设上面示例代码的
a
首先声明为一个对象的话可以粗暴理解为,在对象上找不到属性,就是会返回
undefined
,不会报错就好了更详细的,推荐阅读:你不知道的JS这一章的[[Get]]和[[Put]],如果英语好,英文原版
第一次回答,不足之处请指出啦~