js -- ES6简述

基本类型

  • Boolean
  • Number
  • String
  • Null --> typeof null – object
  • Undefined --> typeof undefined – undefined
  • Object(引用类型)
  • ES6 - Symbol

数组

ES6的数组拓展方法

  • Array.from()将对象转为真正的数组或类数组转数组
        let obj = {
    
    
            name: 'Lucy',
            age: 100,
            sex: 'female',
            // length: 3
        };
        console.log(Array.from(obj));//没有length,输出一个空数组,有length,输出length长度的数组,但是数组项均为undefined

		//这种格式的对象才会被转为数组:属性名为数组索引,最后一项加上length,当然,length就算不是写在最后一项也能转换成功,但是我们习惯写在最后一项。
         let obj1 = {
    
    
             0: 'Tom',
             1: 100,
             2: 'male',
             length: 3
         }
         console.log(Array.from(obj1)); //["Tom", 100, "male"]

		//类数组转数组
		let aLi = document.querySelectorAll('li');
        aLi = Array.from(aLi); //转换
        aLi.push(document.body);
        console.log(aLi);// [li, li, li, body]
  • Array.of() 方法用于将一组值, 转换为数组方法的括号里面放入要转换的值,即使只有一个值,也会转换成数组,如果不放入值,就会生成一个空数组
        console.log(Array.of(1, 2, 3)); //[1, 2, 3]
        console.log(Array.of(1)); //[1]
        console.log(Array.of('a', 'b', 'c'));//["a", "b", "c"]
        console.log(Array.of());//[]
  • fill() 方法使用给定值, 填充一个数组
        let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
        console.log(arr.fill('hello')); //["hello", "hello", "hello", "hello", "hello", "hello", "hello", "hello", "hello", "hello"]
        console.log(arr.fill('hello', 3, 5)); //参1:用来替换的字符  参2:开始的索引   参3:结束的索引,不包括该索引项。

Set结构

ES6提供了一种数据结构Set. 它类似于数组,但是成员的值都是唯一的,没有重复的值。

他可以用来做简单的数组去重

         var arr = [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 4, 4, 4, 6, 6, 6];
         console.log([...new Set(arr)]);// [1, 2, 3, 4, 5, 6]

set用来表示长度的不再是数组的length了,而是用size来表示他的项的长度。

	let set1 = new Set([1,2,3]);
	console.log(set1);//3

map结构

JavaScript 的对象(Object),只能用字符串当作键。这给它的使用带来了很大的限制。ES6 提供了 Map 数据结构。它类似于对象,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键

        let map1 = new Map([
            ['name', 'King'],
            ['age', 100]
        ]);

        console.log(map1);//{"name" => "King", "age" => 100}

同样的,他也用size来表示map结构的长度。


对象

ES6新增对象方法

        // Object.assign(目标对象,obj1,obj2,.....)用于对象的合并,将源对象的所有可枚举属性,复制到目标对象。

        let obj1 = {
    
    
            a: 1,
            b: 2,
            c: 3
        };

        let obj2 = {
    
    
            c: 4,
            d: 5,
            e: 6
        };

        let obj3 = {
    
    
            d: 7,
            e: 8,
            f: 9
        }
        let obj = {
    
    };
        Object.assign(obj, obj1, obj2, obj3); //属性相同,后面覆盖前面。
        console.log(obj);//后面的三个对象内容都复制到第一个对象里面,属性重名后面覆盖前面的
        console.log(obj2);//原对象并未改变

函数

箭头函数

箭头函数是函数的简洁写法

  • 箭头函数的内部this来自于父级,函数声明时即绑定,不可再更改this指向(用apply、call、bind方法也不行)
  • 箭头函数适合用于简单逻辑的纯函数的场景中,如用在map、reduce、filter、foreach的回调函数定义中
  • 箭头函数一定是匿名函数
  • 不要在最外层定义箭头函数,因为在函数内部操作this会很容易污染全局作用域window。最起码在箭头函数外部包一层普通函数,将this控制在可见的范围内
//箭头函数的形式如:(参数)=>{语句块};
v => {
    
    return v;}//只有一个参数,可以省略括号
v => v ; //只有一条语句,可以省略花括号,return也可以省略

猜你喜欢

转载自blog.csdn.net/mountain_zq/article/details/107243307