ES6中的声明

varletconst
1.var声明变量提前
2.var全局作用域
3.var可以重复声明变量
1.let没有变量声明提前
2.let代码块内有效
3.let不能重复声明
1.不能只定义不,不赋值
2.定义赋值之后,不能修改值
3.定义对象后,可以修改对象内部属性值(保证内存地址不变)

ES5中我们最常用的就是var来声明变量

1.var

//1.var存在声明提前
//var a
console.log(a);
//a=1
var a = 1
//输出undefined
//2.var存在全局
if (true) {
            var c=1
        }
console.log(c);
//输出1
//3.var可以重复声明变量
var a = 1
var a = 2
console.log(a);
//输出2

特点:

1.var声明变量提前
2.var全局作用域
3.var可以重复声明变量

ES6中新增加了两个let和const

2.let

//1.let声明变量,没有变量提升
console.log(b);
let b = 1

image-20210228080006649

//2.let代码块内有效
if (true) {
            let c = 1
        }
console.log(c);

image-20210228080529525

//3.let不能重复声明
let a = 1
let a = 2
console.log(a);

image-20210228080836151

特点:

1.let没有变量声明提前
2.let代码块内有效
3.let不能重复声明

3.const

特点包含了let的前三条

//1.不能只定义不,不赋值
const c

image-20210228081158140

//2.定义赋值之后,不能修改值
const c=1
c=2

image-20210228081222236

//3.定义对象后,可以修改对象内部属性值
const user = { name: 'lzx', age: 21 }
console.log(user);
user.name = '123'
user.age = '123'
console.log(user);

image-20210228081541480

const user = { name: 'lzx', age: 21 }
console.log(user);
user = {
   sex: '男'
}

image-20210228081740327

同时自身存在两个特性:

1.不能只定义不,不赋值
2.定义赋值之后,不能修改值
3.定义对象后,可以修改对象内部属性值(保证内存地址不变)

4.经典案例

1.for循环
var arr = []
//var i
//for (i = 0; i < 10; i++) {
for (var i = 0; i < 10; i++) {
    arr[i] = function () {
        return i
        }
    }
//arr数组存储了10个函数
console.log(arr[5]());
//输出10

var变量声明提前,当for循环执行结束后,i=10,所以return i的结果都是10

如果用let声明,不存在声明提前

var arr = []
for (let i = 0; i < 10; i++) {
    arr[i] = function () {
        return i
        }
    }
console.log(arr[5]());
//输出5
2.不会污染全局变量
var RegExp = 10
console.log(RegExp);
console.log(window.RegExp);
//这里因为var声明变量作用域是全局,所以RegExp=10会存储在window中
//不会污染全局变量
let RegExp = 10
console.log(RegExp);
console.log(window.RegExp);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值