ES6语法详解

本文介绍了JavaScript中的let和const关键字,强调了它们与var的区别,如块级作用域、不变量提升以及常量不可变的特性。同时,讲解了模板字符串的使用和解构赋值的概念,包括数组和对象的解构,并提及了对象属性的覆盖情况。
摘要由CSDN通过智能技术生成

let和const

let与传统var的区别

var声明的变量存在变量提升,针对的是全局块

let声明的变量只在块内生效 {}

let

  •  let只在块级作用域内有效,比如定义在条件语句中,那么就只在该条件语句内有效,在条件语句外则无效,在外访问会报错
  • 不能重复声明
  • 不存在变量提升
  • 不会成为window的属性,即在全局作用域中用let声明的变量,使用window.变量名不会生效
function test(){
    var result = 2
    let i = 0;
    
    console.log(i);
}

console.log(result);

const 

用于声明一个常量,它的特性与let一样,只能在块级作用域中有效,不能重复声明,不存在变量提升,不会成为window的属性,但是它一旦声明就不能再修改值

如果声明基本数据类型,声明后是不能修改的,但是如果声明引用数据类型,则可以修改其属性的值

const person = {
name: 'qqq',
age: 22
}
person.name = 'xxx'
console.log(person.name)
此时输出为liaogl,表示修改name属性的值成功

模板字符串 

模板字符串使用反引号来表示,例如:`string`,它的本质上也是字符串,只不过比普通字符串的功能更加强大

可以做字符串拼接,多行字符串,会保留其格式

const person = {
    name:'zhangsan'
}

let string1  = `aaa${person.name}bbb`

解构赋值

数组的解构

const arr = [1, 2, 3];
const [a, b, c] = arr;
console.log(a, b, c); // 1 2 3

const obj = {x: 1, y: 2, z: 3};
const {x, y, z} = obj;
console.log(x, y, z); // 1 2 3

 对象的解构

对象的解构与数组有一个重要的不同。数组的元素是按次序排列的,变量的取值由它的位置决定;而对象的属性没有次序,变量必须与属性同名,才能取到正确的值。

var person= {
	name:'111',
	age:18,
}

var { name,age} = person

console.log(name);
console.log(age);

对象的属性覆盖

var person= {
	name:'111',
	age:18,
}

var test ={
    name:'lisi'
}

var { name,age,...test} = person

console.log(name); // 输出lisi
console.log(age);

promise新特性在其他篇章介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值