一.关于以上let const var的区别我总结了以下几条
| 标题 | 是否可以注册到window对象里 |
|---|
| var | 是 |
| const | 否 |
| let | 否 |
1.var a = 100
console.log(window.a)
2.let b = 200
console.log(window.b)
3.const c = 300
console.log(window.c)
| 标题 | 是否可以重复声明,并且后面的会覆盖前面 |
|---|
| var | 是 |
| const | 否 |
| let | 否 |
1.var a = 100
var a = 200
console.log(a)
2.let a = 100
let a = 200
console.log(a)
3.const a = 100
const a = 200
console.log(a)
| 标题 | 是否可以声明不赋值 |
|---|
| var | 是 |
| let | 是 |
| const | 否 |
1.var a;
2.let b;
3.const c;'const' declarations must be initialized.
1.console.log(a) // undefined
var a = 100;
2.console.log(a) // Uncaught ReferenceError: Cannot access 'a' before initialization
let a = 100;
3.console.log(a) // Uncaught ReferenceError: Cannot access 'a' before initialization
const a = 100;
| 标题 | 是否有生成作用域的效果 |
|---|
| var | 是 |
| let | 否 |
| const | 否 |
1.if(true){
var a = 100;
}
console.log(100)
2.if(true){
let a = 100;
}
console.log(a)
3.if(true){
const a = 100;
}
console.log(a)
| 标题 | 是否会造成一个暂时性的死区 |
|---|
| var | 否 |
| let | 是 |
| const | 是 |
1.var a = 200;
function fn(){
console.log(a)
var a = 300
}
fn()
2.var a = 200;
function fn(){
console.log(a)
let a = 300
}
fn()
3.var a = 200;
function fn(){
console.log(a)
const a = 300
}
fn()
1.var a = 100
a = 200
2.let b = 300
b = 400
3.const c = 500
c = 600 // Uncaught TypeError: Assignment to constant variable.
8.注意:const 不能修改内存地址,但是可以修改内存中的属性
原对象:const obj = { username: '135', password: '123' }
const obj = { gender: 'male' }
1.const obj = { username: '135', password: '123' }
obj.username = '456'
2.console.log(obj) // {username: '456', password: '123'}
obj.gender = 'female'
3.console.log(obj) // {username: '456', password: '123', gender: 'female'}
点击该链接获取更多知识!
blog.csdn.net/xiewenhui11…