ES6新增字符串模板和解构赋值

一、字符串模板

当我们需要拼接字符串时,往往会遇到一些不便,比如变量太多,+用的太多导致自己都看不清哪些内容,代码长还不清晰,换行需要加转义字符等等。
旧语法:

	var name = "张三";
	var year = "1995";
	var month = "6";
	console.log(name+'是'+year+"年"+month+'月份\n出生的')

es6的字符串模板:

var name = "张三";
	var year = "1995";
	var month = "6";
	console.log(`${name}${year}${month}月份
	出生的`)

字符串模板语法

`${表达式}字符串` 
console.log(`${true?`今天`:`明天`}\n出去`);

 \\变量名也是一种表达式

在字符串模板中,字符串可以直接换行,可以使用转义字符,字符串模板可以嵌套使用。

二、解构

解构赋值是一种结构化赋值,主要用途是为了简化书写的长度,提升效率。
解构赋值表达式的值与表达式右侧(也就是=右侧)的值相等,如此一来,在任何可以使用值的地方都可以使用解构赋值表达式
对象的解构赋值:

//例:
let obj = {
    name : "jack",
    age : 18,
    sex : "nan",
    class : 10
 }
 
//方法一:
let name,age;
 ({name,age} = obj);
 console.log(name,age)      //jack 18
//方法二:
let {name , age} = obj;
console.log(name,age);       //jack 18
//方法三:
let {name : oName,age : oAge, sex:oSex} = obj;
console.log(oName,oAge,oSex)	//jack 18 nan

数组的解构赋值:

例:
let arr = [1,2,3,4,10];

//方法一:
let [a,b,c,d] = arr;
console.log(a,b,c,d)	      //1 2 3 4

//方法二:
let {length} = arr;   //获取arr数组的长度
console.log(length)     //5

当数组中包含对象时:

let arr = [1,2,3,{name:'jack'}];

let {0:a,1:b,2:c,3:{name:oName}} = arr;
console.log(a,b,c,oName)     //1 2 3 "jack"

使用解构赋值表达式时,如果指定的局部变量名称在对象中不存在,那么这个局部变量会被赋值为undefined

let node = {
    type: "Identifier",
    name: "foo"
};
let { type, name, value } = node;
console.log(type); // "Identifier"
console.log(name); // "foo"
console.log(value); // undefined

这段代码额外定义了一个局部变量value,然后尝试为它赋值,然而在node对象上,没有对应名称的属性值,所以像预期中的那样将它赋值为undefined

当指定的属性不存在时,可以随意定义一个默认值,在属性名称后添加一个等号(=)和相应的默认值即可

let node = {
    type: "Identifier",
    name: "foo"
};
let { type, name, value = true } = node;
console.log(type); // "Identifier"
console.log(name); // "foo"
console.log(value); // true

在此示例中,为变量value设置了默认值true,只有当node上没有该属性或者该属性值为undefined时该值才生效。此处没有node.value属性,因为value使用了预设的默认值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值