欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

es6基础学习

程序员文章站 2022-03-08 17:52:51
...

一、 变量

  1. var的缺点
     可以重复声明
     无法限制修改
     没有块级作用域
  2. 产生const与let------特点:
    共同特点:
     不能重复声明
     具有块级作用域
     const是常量、let是变量

二、 箭头函数
3. 当只有一个参数时,()可以省略
4. 如果只有一个return,{}可以省略----如 let show=a=>a*2; alert(show(12));
5. 例子

function show() {
 	
	}
let show= ()=>{
	
	}

window.onload=function() {
			alert(‘abc’);
		};
		window.onload= ()=>{
			alert(‘abc’);
		}

③:

let show= function() {
	alert(‘abc’);
}let show= ()=>{

alert(‘abc’);
}

==使用show()均可调用=

④:

let show= function(a,b) {
	alert(a+b);
}let show= (a,b)=>{

alert(a+b);
}

==使用show(n,m)均可调用=

三、 函数的参数

  1. 参数的扩展/数组展开
  2. 默认参数

参数扩展

  1. 收集剩余的参数 function show(a,b,…args){}
  2. 展开数组(展开数组的效果跟直接把数组的内容写在这一样)
    es6基础学习

es6基础学习

  1. 默认参数(可加可不加即默认参数)
    es6基础学习

又如,传参则改变,不传则默认

es6基础学习

四、 结构赋值

  1. 左右两边结构必须一样
  2. 右边必须是个东西
  3. 声明和赋值不能分开(必须在一句话里完成)
  4. 例子
    ① :数组格式
    es6基础学习

② :json格式
es6基础学习

es6基础学习

五、 数组

  1. map-----映射-----一对一
    [56,98,45,66]
    [不及格,及格,不及格,及格]
    [
    {name:’ble’,level:’1’}
    {}
    ]
    ps:map在使用时以一个function作为参数,如下:
    ①:
let arr=[12,5,8]
	arr.map(function(item) {
		alter(item); //这里的item参数arr里面的元素
	});

	let result=arr.map(function(item) {
		return item*2; //这里的item参数arr里面的元素
	});
======>等同于
let result=arr.map(item=>item*2);
	alter(return);

③	:
let score=[55,60,99,80];
let result=score.map(item=>item>=60?’及格’:’不及格’);

alert(score);
alert(result);

  1. reduce----汇总—一堆出来一个
    得出最后的一个统计情况

  2. filter—过滤

  3. forEach----循环(迭代)

  4. es6基础学习

根据其作用原理,于是可以得到reduce的简单作用如下:
说明:reduce函数中有三个参数,参数1,参数2的作用分别如上图,参数3是索引
小例子,算数组的平均数和总数

let arr=[10,22,56,44]

let result=arr.reduce(function(tmp,item,index){
	if(index!=arr.length-1){  //即未到最后一次计算时
		return tmp+item;
	}else{
		return (tmp+item)/arr.length;  //否则则是最后一次计算,则除以长度得到平均数
	}
});

///reduce的实际运用可以用于:购物车的计算总价等

  1. filter(即过滤掉不满足条件的,满足条件的元素保留下来)
    其中是通过true(保留)和false(不保留)

小例子1
如:对于一个数组,保留能被3整除的元素

let a=[12,9,8,33,11]
let result=arr.filter(function(item){
	if(item%3==0){
		return true;
	}else{
		return false;
	}
});
alert(result);
或者用箭头函数简写为:
let result=arr.filter(item=>{
	if(item%3==0){
		return true;
	}else{
		return false;
	}
});

由于item%30本身就是返回布尔值,因此可以简写为
let result=arr.filter(item=>item%3
0);
例子2:
es6基础学习

  1. forEach----循循环(迭代)
    es6基础学习

这里使用执行arr.forEach(function(item,index){alert(index+’:’+item})是对数组arr每个元素进行循环操作,这里的index加可不加。

六、 字符串

  1. 多了两个新方法
     startsWith
    小例子①,根据网址开头判断网址类型
    es6基础学习

endsWith(比如根据扩展名来返回图标,如.txt,.png……)
es6基础学习

  1. 字符串模板
    链接字符串,使用反单引号,使用反单引号,且KaTeX parse error: Unexpected character: '' at position 6: {东西} ̲ 使用{}可以直接插入字符串
     可以折行
    如1:
    let a=12
    let str=a${a}bc; //将s插入abc字符串中间

如2:
在js中不能折行,所以\转义
es6基础学习

而使用``可以
es6基础学习

七、 面向对象(最主要是继承)

  1. class关键字、构造器和类分来了
  2. class里面直接加方法
    旧面向对象格式:

es6基础学习

新面向对象
es6基础学习

  1. 继承
    3.1旧

es6基础学习

3.2 新继承
es6基础学习

八、 面向对象的运用
九、 JSON
PS:json的标准写法
1).只能用双引号
2).所有名字都必须用引号包起来
es6基础学习

3.JSON对象
1).json格式变成字符串

es6基础学习

因此使用
JSON.stringify(json) //即将json字符串化
es6基础学习
es6基础学习

2).字符串变成json格式
JSON.parse() //解析函数

  1. json简写
    1)、key和value一样时,留一个就可以
    2)方法show:function(){}— show(){}

十、 Promise
 主要方法
1) Promise.all
2) Promise.race

  1. 异步请求:不同操作之间没有联系,可同时进行多个操作
  2. 同步请求:按流程,只能作一件事
  3. 同步异步各有其优缺点,因此下推出了两者兼用的Promise
  4. Promise----消除异步操作
     用同步一样的方式,来书写异步代码
     Promise的使用
     Promise是一个对象,因此需要new,如下:,参数是一个函数
    ①:
    let p=new Promise(function(resolve,reject){
    //书写异步代码部分
    // 参数-resolve—成功了
    //参数-reject—失败了
    es6基础学习

//当Promise执行有结果,则执行then,其中then()函数有两个函数形式的参数,当成功时执行第一个函数,当失败时执行第二个参数。
p.then(function(){},function(){})
});
②:
当有多个Promise对象时,由于只是传入的url不同,则有:
es6基础学习

然后使用根据传入url的不同创建不同的Promise对象
es6基础学习

PS:成功时返回的arr是包含了arr.txt中的数组对象和json.txt中的json对象

④ :Promise.all()
有了Promise之后的异步,导入jquery库
es6基础学习

主要是Promise.all().then
⑤ :Promise.race----竞速(哪个快执行哪个)
es6基础学习

十一、generator—生成器
适合场景:中途请求数据
函数模板(加了*)
function * show(){}
调用时不能直接show(),而是先创建生成器对象,然后使用next()的方式,如下:
① :next没有参数
es6基础学习

② :再next中传递参数,参数值最终会返回给yield

  1. 是一个函数
     普通函数—>一路到底
    -------普通函数涉及到异步操作时只能通过回调函数
     generator函数—>中间能停(踹一脚走一步next)
    -------generator函数涉及异步操作时可以使用yield暂停,执行其他相关请求操作,如yield ajax(xxx);再接着执行函数。
  2. yield—放弃执行(暂停执行)
    1) 可以传参、返回参数
    es6基础学习

es6基础学习

  1. generator例子:
    使用node.js辅助,then使用gennerator来读取数据库数据

es6基础学习

相关标签: ES6 javascript