ES6基础数据类型

1、变量声明

ES6 新增四种声明变量指令 let , const , import 和 class
let声明块级作用域,且不会再有声明提前了

2、字符串

新增模板字符串,用反引号 ` 包裹,其中允许插入简单的js表达式,也可以换行书写

let str =`aaa
          bbb
          ccc`
let name = 'user';

// $后面的花括号里的字符串会被js解析器认为是JavaScript语句
`添加${name}成功!`
// "添加user成功!"

新增字符串遍历接口

for (let key of 'name') {
  console.log(key)
}
// "n"
// "a"
// "m"
// "e"

3、数组

新增扩展运算符(...)可把一个可遍历的对象,转化为逗号分隔的数列

console.log(...[1,2,3]);
//1 2 3

新增数组API Array.from、Array.prototype.find、Array.prototype.includes
Array.from用于将可遍历的对象转化为数组

function fun(){
   console.log(Array.from(arguments))
}
fun(1,2)
//[1,2]

Array.prototype.find用来查找数组中符合要求的第一个元素,返回符合要求的元素

[1,5,3,4].find( item => {
    return item>3;
});
//5

Array.prototype.includes用来判断数组中是否含有某个值,有返回true,否则返回false

[3,4,5].includes(5);     // true
[3,4,5].includes(8);     // false

4、函数

ES6中函数主要是拥有书写方式、参数、拓展运算符
箭头函数已在上一篇文章中介绍箭头函数
函数参数默认值设置

let log = (x, y = 'name') => console.log(x, y)

5、对象

当属性名为变量名,值为变量值时,可以直接只写变量,方法同理

let name = 'Jack';
let obj = { name }    //等同于let obj = { name : name }

对象属性名也可以使用表达式
ES6对象新增API
Object.assign(targetObj, obj1, obj2...)用于对象的合并,如果有重复的属性名,后来的会覆盖之前的

let targetObj = { mid : 1, name : '张三'};
let sourceObj = { id : 2, name : '李四' ,address : '小白街5号' };
Object.assign(targetObj, sourceObj);
// { mid : 1, name : '李四', id : 2, address : '小白街5号' }

Object.is判断两个值是否相等
需要注意的是NaN等于NaN,+0不等于-0,跟全等判断的时候刚好相反

Object.is(+0, -0) // false
Object.is(NaN, NaN) // true

6、Symbol

ES6中新引入的一种数据类型,表示独一无二的值
通常在为了保证不会与对象的其它属性产生冲突时使用

let symbol = Symbol();
angular.forEach(allMessages,messages => {
    angular.forEach(messages, msg => {
          //only show one message
         //atomicNotifyService.error(msg, 3000, symbol);
        //show all message
        atomicNotifyService.error(msg, 3000, msg);
    });
});

解构、promise、class等将在下一章中介绍

你可能感兴趣的:(ES6基础数据类型)