笔记代码如下
<!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>变量</title>
</head>
<body>
</body>
<script>
// 关于定义变量
// ES5 var a=12;
// 作用域:全局 函数局部
</script>
<script>
// let 声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
// const 常量,定义好了不能改变
/*
let注意:
1、没有与解析 不存在变量提升
2、必须先定义再使用,只在代码块里生效
3、不能重复定义 不能多次let a来改变值
4、for循环里面是父级作用域,里面又有一个
*/
</script>
<script>
// let声明属于块级作用域,只在块级里生效 声明这个变量在上面打印是a is not defined 下面打印正常
{
// console.log(a) // a is not defined
let a = 12;
// console.log(a) //12
}
console.log(a) // a is not defined
</script>
<script>
for (let i = 0; i < 3; i++) {
let i = '123';
console.log(i) // 打印三次123
}
</script>
<script>
{
let a = 5;
{
let a = 7;
console.log(a) //7 如果没有声明let a=7 打印结果是5
}
console.log(a) //5
}
</script>
</html>