- 53
- 0
let homeTravelItemImg = document.getElementsByClassName("item-img");
let homeTravelItemIcon = document.getElementsByClassName("item-icon");
for (var i = 0; i < homeTravelItemIcon.length; i++) {
homeTravelItemIcon[i].onclick = function() {
homeTravelItemImg[i].style.opacity = '1';
homeTravelItemIcon[i].style.display = 'none';
}
}
代码主要实现的是,当我点击一个icon时,icon消失,并且背景图片的不透明度改变;
这里面当我触发点击事件时,控制台报错:
Uncaught TypeError: Cannot read property 'style' of undefined
而我将for循环的var 改为 let时,就不会报错,请问这是为什么?
是因为块级作用域的问题吗?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
♪月夜下的思念♬ 普通会员 1楼
在JavaScript中,
var和let都可以用于声明变量,但它们有一些主要的区别:- 变量的作用域:
var变量的作用域是函数或代码块的整个作用域内,而let变量的作用域是它声明时的作用域内。
例如: ```javascript function test() { var x = 10; console.log(x); // 输出:10 }
let y = 20; console.log(y); // 输出:20 ```
- 变量的可变性:
var变量可以被重新赋值,而let变量只能被初始化一次。
例如:
javascript var x = 10; x = 20; // 输出:20- 变量的构造函数:
var变量可以是构造函数的参数,但let变量不能。
例如: ```javascript function test() { var x = 10; console.log(x); // 输出:10 }
function test2() { let x = 20; console.log(x); // 输出:20 } ```
总的来说,
var和let在可变性、作用域和变量的构造函数上都有所不同。使用时,需要根据具体的需求来选择使用哪个变量。 - 变量的作用域:
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
