Let var const

作者: 好奇男孩 | 来源:发表于2018-05-13 01:17 被阅读9次

let 命令

ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
具体特性如下:

1. var 可声明前置

a = 3
var a
var a = 4

2. let不可声明前置

a = 3 //报错
let a

3. let不可重复声明

let a = 3
let a = 4  //报错
var a = 5  //报错

4. 存在块级作用域

for(let i =0; i<3; i++){
  console.log(i)
}
console.log(i) //报错

IIFE的替换()

(function(){
  var a = 1
}())
{
  let a = 1
}

5 暂时性死区(TDZ):在let声明变量之前都是该变量的死区,在死区内该变量不可使用

if (true) {
  tmp = 'abc'; //报错
  let tmp;
}

const 命令

const声明一个只读的常量。一旦声明,常量的值就不能改变。

1. const 声明的常量不可改变

const a = 1
a = 2 //报错

const obj = {a: 1}
obj.a = 2   //没问题
obj = {a: 2}  //报错

2. 适用于let的同样适用于const

es6注意

  • 应该避免在块级作用域内声明函数。如果确实需要,也应该写成函数表达式,而不是函数声明语句

  • var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。

var a = 1;
// 如果在 Node 的 REPL 环境,可以写成 global.a
// 或者采用通用方法,写成 this.a
window.a // 1

let b = 1;
window.b // undefined

相关文章

  • Android菜鸟学习js笔记 一

    一、var,const,let区别? var 变量,const 常量,let块级变量。

  • ES6_var、let与const

    var,let 与 const var 申明变量。 let 申明变量,更完美的 var。 const 申明常量(物...

  • TypeScript 02 - 变量声明

    在 TypeScript 中,var 还是 var,let 还是 let,const 还是 const,这里简单温...

  • JS中var、let、const区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • js中const,var,let区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • 面试题 var let const的区别 箭头函数和普通函数的区

    var let const 有什么区别 var var声明的变量可进行变量提升,let和const不会var可以重...

  • ES6学习

    1、 var let const var是函数作用域let和const是块级作用域,!const是常量,不能改变。...

  • ES6

    let var const var 可声明前置 let不可声明前置 let不可重复声明 存在块级作用域 const...

  • let和const

    let/const(常用) let和var 区别 let,const用于声明变量,用来替代老语法的var关键字,与...

  • js 2022经典面试题汇总

    1.JS数据类型有哪些 2.var、let、const区别 var存在变量提升,而let、const没有 let、...

网友评论

    本文标题:Let var const

    本文链接:https://www.haomeiwen.com/subject/ykskdftx.html