let和const

/*

  let

    1、没有变量提升

    2、是一个块级作用域

    3、不能重复声明

*/

// 1、没有变量提升

console.log(a) // 报错 Uncaught ReferenceError: Cannot access 'a' before initialization

let a = 10

// 2、是一个块级作用域

if(true){

  let b = 10

}

console.log(b) // 报错 Uncaught ReferenceError: b is not defined

// 3、不能重复声明

let c = 10

let c = 20 // 报错 Uncaught SyntaxError: Identifier 'c' has already been declared


/*

  const

    1、没有变量提升

    2、是一个块级作用域

    3、不能重复声明

    4、声明的是一个常量,一旦声明,无法修改

      当声明的是一个对象时,不可以直接修改对象本身,但是可以修改对象内部的值

*/


// 4、声明的是一个常量,一旦声明,无法修改

//    当声明的是一个对象时,不可以直接修改对象本身,但是可以修改对象内部的值

const person = {

  name: 'Tom'

}


person = {

  age: 30

} // 报错 Uncaught TypeError: Assignment to constant variable.


person.name = 'Bene'

console.log(person) // { "name": "Bene" }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容