Javascript es6语法新特性总结

本文详细总结了JavaScript ES6的新特性,包括let和const命令、数组与对象的解构赋值、模板字符串、字符串新方法、正则表达式的新特性、函数与数组的新方法以及对象的拓展。此外,还介绍了for...of循环等新语法,帮助开发者更好地理解和应用ES6。
摘要由CSDN通过智能技术生成

Javascript es6语法新特性总结

前言

随着2015年6月份发布的第一个ES6版本开始,新生代的JavaScript语言在编程中用得越来越多,众多浏览器也对ES6有良好的支持。那么ES6出来后,它有哪些新特性,有哪些需要注意的地方,在这里做一个总结。

let命令

es6为我们带来了let命令,与var命令类似,但是它声明的变量只在代码块中有效(块作用域),即局部变量声明的效果。

{
   
     let a = 1;
     var b = 1;
}
console.log(a); //ReferenceError: a is not defined
console.log(b); // 1

let很适合在for循环中使用,比如

for(let i=0; i<5; i++){
   
	//...
}

还有要注意的是let与var不一样的地方,let不存在变量提升,即要使用let声明的变量必须遵循先声明后使用的原则,否则会报错,比如:

console.log(a);
var a = 1; //变量提升,会输出undefined

console.log(b);
let b = 1; //报错ReferenceError

此外let声明的局部变量会对外部同名的全部变量其屏蔽作用,与C语言类似,比如

var a = 1;
{
   
	let a = 2;
	console.log(a); // 2
}
console.log(a); // 1
const命令

const用于声明一个只读的常量,一旦声明,常量的值就不能改变。const的作用域与let相同,也不存在变量提升。

const PI = 3.1415;
数组的特性

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。比如:

let [a, b, c] = [1, 2, 3];

本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组进行解构的例子。

let [foo, [[bar], baz]] = [1, [[2], 3]];
foo // 1
bar // 2
baz // 3

let [ , , third] = ["foo", "bar", "baz"];
third // "baz"

let [x, , y] = [1, 2, 3];
x // 1
y // 3

let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]

let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []

用于从函数返回多个值

/ 返回一个数组

function example() {
   
  return [1, 2, 3];
}
let [a, b, c] = example();

// 返回一个对象

function example() {
   
  return {
   
    foo: 1,
    bar: 2
  };
}
let {
    foo, bar } = example();

提取JSON数据

let jsonData = {
   
  id: 42,
  status: "OK",
  data: [867, 5309]
};

let {
    id, status, data: number } = jsonData;

console.log(id, status, number);
// 42, "OK", [867, 5309]
模板字符串

模板字符串(template string)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。模板字符串中嵌入变量,需要将变量名写在${}之中。大括号内部可以放入任意的 JavaScript 表达式,可以进行运算,以及引用对象属性.函数调用。

//传统模板写法
$('#result').append(
	'sum of a,b' + <br/> + 'a + b = ' + (a+b)
);
//es6模板字符串写法
$('#result').append(
	`sum of a,b + <br/>a+b= ${
     a+b}`
);

//变量引用样例
let x = 1;
let y = 2;
`${
     x} + ${
     y} = ${
     x + y}`
// "1 + 2 = 3"

`${
     x} + ${
     y * 2} = ${
     x + y * 2}`
// "1 + 4 = 5"

let obj = {
   x: 1, y: 2};
`${
     obj.x + obj.y}`
// "3"

function fn() {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值