js-ES6的那些新鲜事儿-2

1.解构赋值
//数组结构
var [a,b,c]=[1,2,3]; //a=1,b=2,c=3
//对象结构
var {name:name,age:age}={name:'tom',age:3}
var {name,age}={name:'tom',age:3}                //前后一致,可以省略等号前面的前面的name
var {name:username,age:userage}={name:'tom',age:3} //值赋给了username和userage
var [a,b,c,d]=[1,2,3] //d是undefined,多余的值被定义为undefined,不管多余的变量在等号左边还是右边
var a=[2,3,4];
var b=[1,...a,5];//b=[1,2,3,4,5];...用着数组前,展开数组
var [b,...c]=[1,2,3,4,5];//b=1,c=[2,3,4,5];...用着变量前,会把所有剩余值合到一个数组中
var [a,b,c,d=4]=[1,2,3];//等号左侧给d一个默认值,当右侧没有d相对应的值,d使用默认值,有对应值,d使用对应值

对象解构赋值中,前面的变量name:name中前一个name和等号后面name参数一致,可以等号前面的前面的name

ps:对象object解构赋值中如果省略了声明关键字var/let/const,需要用()阔气来,不然{}会被当成块语句

//x是解构赋值,y是参数默认值
function aa({x=1}={},{y}={y:2})
aa({},{})//1,undefined
2.简洁写法
var user={
    name:name,
    age:age,
    play:function(){}
}
//简洁写法,同名属性可以省略,只写一个,方法可以直接写()
var user={
    name,
    age,  
    play(){}  
};

3.对象属性名可以是变量
var key='name';
user[key]='tom';//对象user的属性name可以通过变量key取到
4.模板字面量

用Esc键盘下的``包含带变量的模板,变量用${}包围,再也不用拼接字符串了${}大括号内部可以包含函数,表达式

var name='tom';
var say=`hi,${name}`;//hi,tom

${}作用域:

var name='tom';
function son(str){
	var name="tom son";
	console.log(str);
}
function father(){
	var name="tom father";
	son(`hi,${name}`)
}
father();//hi,tom father,在father函数内部找到变量name

函数参数中模板字符串解构,会将常量字符串解构到第一个参数数组中,字符串变量放在第二个参数中

function dispatch(strings,...values){
	console.log(strings);
	console.log(values);
}
var name='tom',age=18
dispatch`hi,my name is ${name},i am ${age} years old.`;
console: (3) ["hi,my name is ", ",i am ", " years old.", raw: Array(3)]
         (2) ["tom", 18]


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值