<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
</body>
<script>
//let声明 的变量只在它所在的代码块有效。
{let a=3;}
console.log(a);//报出异常:Uncaught ReferenceError: a is not defined
//计数器i只在for循环体内有效,在循环体外引用就会报错
for (let i = 0; i < 3; i++) {
console.log(i);
}
//报出异常:Uncaught ReferenceError: i is not defined
//for循环还有一个特别之处,就是循环语句部分是一个父作用域,而循环体内部 是一个单独的子作用域。
for (let i = 0; i < 3; i++) {
let i = 'abc';
console.log(i);
}
</script>
<script>
//const声明一个只读的常量。一旦声明,常量的值就不能改变。
const PI = 3.1415;
PI=3;
//const声明 的变量只在它所在的代码块有效。
{
const a = 10;
}
console.log(a);
//报出异常:Uncaught TypeError: Assignment to constant variable.
</script>
<script>
//var可以先使用,后声明;let必须先声明后使用。
{
let n = 10;
var m = 1;
}
console.log(m);//输出1
console.log(n);//报出异常:Uncaught ReferenceError: n is not defined
</script>
</html>
区别:const声明一个只读的常量。一旦声明,常量的值就不能改变而var可以先使用,后声明;let必须先声明后使用