ES6 随笔 3-数据类型

1.String

许多字符串的api对Unicode码点增加支持
模板字符串(解决了字符串长拼接的一大坨的问题)

//0.jQuery(Es5)存在的问题
$('#result').append(
  'There are ' + basket.count + ' ' +
  'items in your basket, ' +
  '' + basket.onSale +
  ' are on sale!');
//ES6 模板字符串 
//1.作为跨多行的普通字符串(保留缩进格式)
$('#result').append(`
  There are ${basket.count} items
   in your basket, ${basket.onSale}
  are on sale!
`);
//2.嵌入变量,${}内支持任何的js表达式
let obj = {x: 1, y: 2};
`${obj.x + obj.y}`
//3.甚至可以嵌套使用
const tmpl = addrs => `
  
  ${addrs.map(addr => `
    
  `).join('')}
  
${addr.first}
${addr.last}
`; const data = [ { first: '', last: 'Bond' }, { first: 'Lars', last: '' }, ]; 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.运算符

扩展:指数运算符、短路运算、以及一些逻辑运算符

5.Set、Map数据结构

你可能感兴趣的:(Dhtml,javascript)