let与var
- let声明的变量有严格局部作用域,var会越域
- let只能声明一次变量,var可以多次声明
- let不存在变量提升(也就是未定义提前使用),var存在变量提升
const声明常量(只读常量)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<script>
// {
// var v1=1;
// let v2=2;
// }
// console.log(v1);//1
// console.log(v2);//let.html:16 Uncaught ReferenceError: v2 is not defined
// var a1=1;
// var a1=2;
// let a2=1;
// let a2=2;//Uncaught SyntaxError: Identifier 'a2' has already been declared
// console.log(a1);//2
// console.log(a2);
// console.log(b1);//undefined
// console.log(b2);//let.html:30 Uncaught ReferenceError: Cannot access 'b2' before initialization
// var b1=1;
// let b2=2;
const c1=1;
// c1=2;//Uncaught TypeError: Assignment to constant variable.对常量变量的赋值
// const c2;//Uncaught SyntaxError: Missing initializer in const declaration
console.log(c1);
</script>
</body>
</html>
网友评论