<script>
/*
let const 定义变量 升级版 var , *****常用
1-不能重复定义
2-没有声明提升,变量只能先定义 后使用
3-新增块级作用域(局部作用域) 使用let 定义id变量 在代码内 就是局部
变量,不是全局变量
*/
</script>
<script>
// 不能重复声明变量
// let a = 10
// Uncaught SyntaxError: Identifier 'a' has already been declared
// let a = 100
// const a = 10
// Uncaught SyntaxError: Identifier 'a' has already been declared
// const a = 100
// 不会报错
// var a = 10
// var a = 100
</script>
<!-- <script>
//没有声明提升,变量只能先定义 后使用
// 直接报错,let之前没有a
// console.log(a)
let a = 10
console.log(a)
// 直接报错,const之前没有a
// console.log(c)
const c = 10
console.log(c)
// undefined
console.log(b)
var b = 10
// 10
console.log(b)
</script> -->
<!-- <script>
// 局部作用域
let a = 1
if(a==1){
let age = 19
var b = 1
}
// 1
console.log(b)
// 报错Uncaught ReferenceError: age is not defined
console.log(age)
</script> -->
<script>
/*
let 变量
const 常量,不能被重新赋值,值必须在定义的时候赋值
*/
let a = 10
a = 10
// 10
// console.log(a)
// const b = 10
// 报错 Uncaught TypeError: Assignment to constant variable.
// b=10
// 报错 Uncaught SyntaxError: Missing initializer in const declaration
// const c
// c = 10
const obj = {name:'zhangsan'}
// 这样不会报错,obj相当于对象的地址,地址没有改变,改变的是内容,因此不报错
obj.name = 'lisi'
</script>