代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>定义变量</title>
</head>
<body>
<script>
//d三种定义变量的方式
var a = 10;
let b = 20;
const c = 30;
console.log("a的值是:" + a + "--b的值是:" + b + "--c的值是:" + c);
console.log("------------------------------------------");
console.log("var定义变量的作用域测试");
function testVar() {
for (var i = 1; i <= 3; i++) {
console.log("这是for循环中的i-->" + i);
}
console.log("这是for循环外,test方法中的i-->" + i);
}
//下面控制台输出的语句会报错,因为var的作用域为一个函数中
// console.log("这是test方法外的i-->" + i);
testVar();
console.log("------------------------------------------");
console.log("let定义变量的作用域测试");
function testLet() {
for (let i = 1; i <= 3; i++) {
console.log("这是for循环中的i-->" + i);
}
//下面控制台输出的语句会报错,因为let定义的变量为局部变量只作用在局部范围内
// console.log("这是for循环外,test方法中的i-->" + i);
}
//下面控制台输出的语句会报错,因为var的作用域为一个函数中
// console.log("这是test方法外的i-->" + i);
testLet();
console.log("------------------------------------------");
console.log("const定义变量的作用域测试");
function testConst() {
for (const i = 1; i <= 3; i++) {
console.log("这是for循环中的i-->" + i);
}
//下面控制台输出的语句会报错,因为const定义的变量为局部变量只作用在局部范围内
// console.log("这是for循环外,test方法中的i-->" + i);
}
//调用函数只会输出1,因为const定义的变量不可被改变
testConst();
</script>
</body>
</html>
效果图