1.String
许多字符串的api对Unicode码点增加支持
模板字符串(解决了字符串长拼接的一大坨的问题)
//0.jQuery(Es5)存在的问题
$('#result').append(
'There are <b>' + basket.count + '</b> ' +
'items in your basket, ' +
'<em>' + basket.onSale +
'</em> are on sale!');
//ES6 模板字符串
//1.作为跨多行的普通字符串(保留缩进格式)
$('#result').append(`
There are <b>${basket.count}</b> items
in your basket, <em>${basket.onSale}</em>
are on sale!
`);
//2.嵌入变量,${}内支持任何的js表达式
let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
//3.甚至可以嵌套使用
const tmpl = addrs => `
<table>
${addrs.map(addr => `
<tr><td>${addr.first}</td></tr>
<tr><td>${addr.last}</td></tr>
`).join('')}
</table>
`;
const data = [
{ first: '<Jane>', last: 'Bond' },
{ first: 'Lars', last: '<Croft>' },
];
console.log(tmpl(data));
//4.其他(通过模板字符串编译生成一个模板的实例、标签模板...)
2.Number
新增了一些进制数转换api
3.对象
允许在{}声明对象时候,直接写入变量和函数(属性名也可以直接写,即使用字面量直接声明属性名)
简写的对象函数,不可以作为构造函数,抛出异常
const obj = {
f() {
this.foo = 'bar';
}};
new obj.f() // 报错
3.1 简洁表达式
const foo = 'bar';
const obj = {foo}; //obj == {foo:'bar'}
const obj1 = {'bar'} //报错
//顺带一提,vue中的data所声明的属性不适用简洁表达式
const obj2 = {this.dataAttribiute} //报错(设,dataAttribute为data声明属性)
3.2 属性名表达式
属性名的表达式如果是一个对象,将自动转成字符串的[object Object]
3.3 super
super关键字,指向对象的原型对象
4.运算符
扩展:指数运算符、短路运算、以及一些逻辑运算符