JS-part12.2-ES6定义变量

前言

ES6:
  + 官方名称叫做 ES2015
  + 语法层面的更新
    => 原先: var a
    => ES6: let a
  + 我们书写代码:
    => 不需要考虑语法层面的兼容
    => ES6 转换 ES5 的工具叫做 babel

babel中文官网

ES6定义变量

let/const 和 var 的区别

let/const 一起和 var 的区别:
  1. var 会进行预解析
    => let/const 不会进行预解析, 必须先定义后使用
  2. var 可以声明重复的变量名
    => let/const 不能声明重复的变量名
  3. var 没有块级作用域
    => let/const 有块级作用域


块级作用域
  + 被代码块限制变量的使用范围
  + var: 只有函数私有作用域才能限制使用范围
  + let/const: 只要是能书写代码段的 {} 都能限制使用范围
// let/const 和 var 的区别
// 1. 预解析
// console.log(a)   // undefined
// var a = 100
// console.log(a)   // 100

// 使用在定义之前会报错
console.log(a)   // Uncaught ReferenceError: Cannot access 'a' before initialization
let a = 100
// const a = 100
console.log(a)   // 先定义完后使用是没问题的 100
// let/const 和 var 的区别
// 2. 重复变量名
// var num = 100
// var num = 200
// console.log(num)   // 200

// 不能重名
let num = 100
console.log(num)    // Uncaught SyntaxError: Identifier 'num' has already been declared
let num = 200

const num = 200
console.log(num)
const num  = 300    // Uncaught SyntaxError: Identifier 'num' has already been declared
// let/const 和 var 的区别
// 3. 块级作用域
// if(true){
   
//     // 全局变量
//     var num = 100
// }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值