目录
区别一览表:
重复定义:
// var可以重复定义
var name = '坤坤'
var name = '小黑子'
// let不可以重复定义
let color = 'red'
let color = 'yellow'//报错
// const不可以重复定义
const color = 'red'
const color = 'yellow' //报错
修改值:
// var定义的值可以修改
var name = '坤坤'
name = '小黑子'
console.log(name, 'name');
// let定义的值可以修改
let color = 'red'
color = 'yellow'
console.log(color, 'color');
// const定义的变量不能修改
const type = 'number'
type = 'String'//报错
console.log(type, 'type');
// const定义的对象或者是数组是可以修改的
const obj = {
name:'喷射战士'
}
obj.name = '战'
console.log(obj,'obj');//可以修改
声名提升:
console.log(name,'name');//可以声名提升(声名前使用)
var name = '小黑子'
console.log(nickName,'name');//不可以声名提升(声名前使用)
let nickName = '小黑子'
console.log(person,'name');//不可以声名提升(声名前使用)
const person = '小黑子'
块级作用域:
var kunkun = '鸡你太美'
function fun(){
var kunkun = '只因你太美'
console.log(kunkun,'kunkun');//输出结果为函数内部定义的变量
// var有函数作用域,但没块级作用域
}
fun();
{
var name = '马保国'
let title = '五连鞭'
const person = '香蕉君'
}
console.log(name,'name--var');//可以拿到块级作用域里面的值
console.log(title,'title--let');//不能拿到块级作用域里面的值
console.log(person,'person--const');//不能拿到块级作用域里面的值