learn-es6常用语法(5)

对象新增方法

对象的key value相同的话可以简写成一个      let obj={'a':a}   =>改写成  let  obj={a}

方法也可以简写  key值和function的名字相同  let obj={"fn1":function fn1(){}}          let obj={fn1(){}}

--------------------

Object.is()  判断两个值是否相等   ***和三等相同但可以检测出NaN  

Object.is(NaN,NaN) true

----------------------

合并对象 Object.assign()   如果后面对象与前面对象属性相同   后面的覆盖前面的

---------------------

把方法定义到prototype上

Object.setPropertypeOf(要绑定的对象,方法)  

let obj={name:1}

let fn={fn1(){ console.log(1)}}

Object.setPrototypeOf(obj,fn)  //现在obj可以调用fn1方法

Object.getPropertypeOf 读取一个对象的原型对象

Object.keys()

Object.values()

Object.enteries()

Object.fromEntries(obj)  enteries的反向方法


promise 异步队列

es6中用来同一规范异步行为   res代表成功运行异步值后   rej代表失败后运行什么方法

1创建的时候就会立即执行2一旦开始就不能停止3只有用catch才能捕获错误

缺点  :当你需要处理一个队列时 ,需要一层一层的往下then

如果用all调用 ,因为方法是并行的,不能确定函数的执行顺序

Promise.all([fn1(),fn2(),fn3()]).then((result)=>{  console.log(result)})

all 按照队列里最慢的去执行

race谁最快按照谁先执行  也是并行的  不能判断函数的执行顺序


构造器函数(单线程多函数协调配合执行)

形式:function 后面加*号   function的名字(){}

构造器函数可以执行一部分就停止的函数,每次调用执行函数的一部分,

可以多个函数配合协同作战

构造器函数(多个函数配合协同作战)


proxy  拦截器  

"拦截"对元素的行为  增删  (类似于class中的set与get) 

let P1=new Proxy({}操作的对象,{

get:(target,propertyname)=>{

if(propertyname="123"){

alert('不能获取')

return false;}

}

}})

console.log(obj['123']) //不能获取


reflect   为“操作对象”而提供的新的api

Object.defineProperty(target,key,value)     给对象定义一个新的属性  或者对已有属性重新赋值

Object.keys()  循环现有对象的key值

如果没有获取到值会报错   reflect解决其报错问题  直接返回false

reflect  reflect代替Object下的一系列方法 ,其方法与proxy的方法相同


js模块化  module

import 与export的都是一个对象  所以要用export {name} 来输出

------------------

一次性加载js中的所有方法

定义js:functin add(){}

          function remove(){}

          export {add,remove}                                  

如果变成export default {remove,add}  引用时可以用“自定义的名字”  import  lalala  from "上面js的路径"

引用:import * as fangfa from '上面js的路径'          

使用:fangfa.add();

-----------------

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Jni数据类型 Jni方法 来自 http://blog.chinaunix.net/uid-22028680-i...
    FlyDragonInSky阅读 1,030评论 0 0
  • 1.在C/C++中实现本地方法 生成C/C++头文件之后,你就需要写头文件对应的本地方法。注意:所有的本地方法的第...
    JayQiu阅读 2,581评论 0 3
  • 本文为阮一峰大神的《ECMAScript 6 入门》的个人版提纯! babel babel负责将JS高级语法转义,...
    Devildi已被占用阅读 2,189评论 0 4
  • 第一章:块级作用域绑定 块级声明 1.var声明及变量提升机制:在函数作用域或者全局作用域中通过关键字var声明的...
    BeADre_wang阅读 1,058评论 0 0
  • 过了这么多年,我终于发现了那些让我喜欢的人的特质,他们总是生机勃勃的,有自己喜欢的事情,不过多的干涉别人的生活,懂...
    覃荇阅读 169评论 0 0

友情链接更多精彩内容