ES6总结

1.1 ECMAScript 6 简介

学习网址:http://es6.ruanyifeng.com/

ECMAScript是javascript标准

ES6就是ECMAScript的第6个版本

ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

1.2 ECMAScript 和 JavaScript 的关系

ECMAScript是JavaScript的规格,JavaScript是ECMAScript的一种实现,在日常场合,这两个词是可以互换的。

JavaScript的创造者Netscape公司,将JavaScript提交给国际标准化组织ECMA,希望这种语言能够成为国际标准,后来ECMA发布标准文件的第一版(ECMA-262),规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript

该标准从一开始就是针对JavaScript语言制定的,之所以不叫JavaScript,有两个原因:一是商标,Java是Sun公司的商标,根据授权协议,只有Netscape公司可以合法地使用JavaScript这个名字,且JavaScript本身也已经被Netscape公司注册为商标;二是想体现这门语言的制定者是ECMA,不是Netscape,有利于保证这门语言的开放性和中立性。

但事实上,JavaScript比ECMA-262的含义多得多,一个完整的JavaScript实现应该由以下三个部分组成:

1) ECMAScript:核心

2) DOM:文档对象模型

3) BOM:浏览器对象模型

2.1数组的解构赋值

ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

以前,为变量赋值,只能直接指定值。

let a = 1;let b = 2;let c = 3;

ES6 允许写成下面这样。

let [a, b, c] = [1, 2, 3];

上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值。

本质上,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。下面是一些使用嵌套数组进行解构的例子。

let [foo, [[bar], baz]] = [1, [[2], 3]];

.

let [ , , third] = ["foo", "bar", "baz"];
third // "baz"let [x, , y] = [1, 2, 3];

2.2字符串的解构赋值

字符串也可以解构赋值。这是因为此时,字符串被转换成了一个类似数组的对象。

const [a, b, c, d, e] = 'hello';
a // "h"b // "e"c // "l"d // "l"e // "o"

类似数组的对象都有一个length属性,因此还可以对这个属性解构赋值。

let {length : len} = 'hello';
len // 5

函数参数的解构赋值

 

2.3模板字符串 (重点)

传统的 JavaScript 语言,输出模板通常是这样写的(下面使用了 jQuery 的方法)。

$('#result').append(
  'There are <b>' + basket.count + '</b> ' +
  'items in your basket, ' +
  '<em>' + basket.onSale +
  '</em> are on sale!');
上面这种写法相当繁琐不方便,ES6 引入了模板字符串解决这个问题。
$('#result').append(`
  There are <b>${basket.count}</b> items
   in your basket, <em>${basket.onSale}</em>
  are on sale!
`);

 

2.4 数组扩展

var arr = [10,20,30]
var arr1 = [40,50,60];
console.log([...arr,...arr1]);
var arr2 = [23,235,2,3,52,35];
console.log(Math.max.apply(null,arr2));
console.log(Math.max(...arr2))

 

2.5字符串的新增方法

实例方法:includes(), startsWith(), endsWith()

实例方法:repeat()

实例方法:padStart(),padEnd()

实例方法:trimStart(),trimEnd()

 

 ES6知识点总结


    变量声明关键字


        var
            全局作用域和函数作用域
        let
            局部作用域
            不会变量提升
            不能重复声明
        const
            值类型不能修改
            声明必须赋值
            一般大写


    解构


        数组
            定义:把数组或对象解析为单独变量
            1基本格式 
    var[a,b,c="defalt",...rest]=arr
            2逗号代表下一位
            3   ...rest
剩余的所有(只能放在最后)
            4.可以有默认值
            5  交换变量
[a,b]=[b,a]
        对象
            var {name,age,say="nihao",rest}=obj
            对象解构没有顺序


    展开


        ...arr
arr展开为单独变量
    

字符串


         字符串模板
`${js变量}`
可以换行,可加特殊符号
        遍历
for  of
        检测
includes(sub)是否包含
startsWith(sub)以开头
endsWidth(sub)以结尾
        去空白
trim()去掉两端空白
trim Left()去掉左边空白
trimRight()去掉右边的空白
        重复
repeate(n)字符串重复n次
        填充
"22".padStart(4."0")
''0022"
.padEnd(次数,填充字符串)

数组高阶方法


    forEach遍历
        arr.forEach(function(item,index,self){})
        item
当前遍历的元素
index
下标
self
当前数组
    map映射
        arr.forEach(function(item,index,self){
//返回一个映射数组
})
    filter过滤
        arr.filter(function(item,index,self){
//返回真,元素保留   假 过滤掉
})
    reduce累计
        arr.reduce(function(a,b){
//a是上一个返回的结果
})
    some有一个
        有一个返回结果为true最总结果为true
    every每一个
        每个返回结果为true最终结果为true
    find
查找元素
        查找符和条件的元素
    findIndex
查找下标
        查找符合元素的下标
    sort(a,b)=>(a-b)
排序
  

函数


    默认参数
        function fn(a=10,b=12){}
    调用:扩展参
        fn(...arr)
    定义:不定参
        function(...args){
}

对象


    对象简写
        变量和值简写
        函数function简写
        var  name="mumu"
var obj={
name,
say(){alert(this.name)}
}
    对象动态属性
        {[nick+"msg"]:"你好"}


    面向对象基本特点:封装;继承;多态;接口
    单词
extends继承
constructor构造函数
super超类
static静态
    定义类方法
        class Person{
            constructor(name,age){
                this.name=name;
                this.age=age;
            }
            eat(){
                alert("我喜欢吃大米")
            }
        }
    实例化类
        var  pl=new Person()
    类中的this 
        Person类中的this指向、当前类的实例(pl)
    继承
        class Teach extends Person{
        constructor(name,age,major) {
               super( );
               this.major=major;
            }
}

模块module


    导入
        import{name,fun,Square}from '.api.js'
        import  Square from '.api.js'
import  Sq  from '.api.js'
        别名按时,*代表所有
impost  *api  from'./api.js'
api.name;api.fun()
        别名
import  Square,{name,fun  as fn }from '.api.js'
    导出
        export {name,fun,Square}
导入多次
        export   default  Square;
导入一次

Set


    定义:没有重复元素的集合(数组)
    初始化:
var  s1 =new  Set()
var  s2 =new  Set{[1,2,5]}
    添加:
sl.add()
    删除:
sl.delete()
情况
sl.clear()
    检测
sl.size
    长度
sl.size
    转数组
Array.from(sl)
[...sl]
    数组去重
        arr=[...new  Set(arr)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值