Object.Assign(目标,源)将两个或多个对象合并到一个。它修改目标对象就位,因此如果您更喜欢创建一个新对象,将空对象文字传递为第一个参数。或者,您可以使用扩展操作员...将多个对象合并在一起:{... obj1,... obj2}虽然牢记,但传播不会在对象上调用Seterer,因此是最便携的,考虑对象。扩展操作员也可以在最后代码示例中所示的阵列上使用。传播语法文档const源= {x:1,y:4} const target = object.assign({},源)打印(json.stringify(target))const扩展= {a:1,b:2,.. .source} print(json.stringify(传播))const ary1 = [1] const ary = [... ary1,[2,3]]打印(ary)
破坏性允许您通过模式从对象和数组中提取值。它是一个复杂的主题,许多应用程序......对于我来说太多了,但我已经显示了一些我可以想到的一些最常见的用途。破坏性文档和MDN文档函数f(){return [1,2];} let [a,b] = f()打印(" a =" + a +" b =& #34; + b)const obj = {状态:{id:1,is_verified:false}} const {id,is_verificed:验证} = obj.stateprint(" id =" + id)print( "验证=" +验证)(object.entries的const [key,值]({a:1,b:2,c:3})){print(key +"是" +值);}
在对象上声明的函数可以使用省略函数关键字的新的简写样式。两个功能(FN1,FN2)在下面的样本中等同。方法指南const x = {type:" x",shorthand(){print(" shorthand" + this.type)},long:function(){print(&#34 ; long" + this.type)}} x.shorthand()x.long()
我主要跳过承诺,因为异步/等待是首选,但有时你需要同步多个异步调用,并承诺。所有是最容易做到的Wayt。 promise.all文档const delay =(n)=> {返回新的承诺((解析)=> {setTimeout(()=>解析(n),n)})}异步函数main(){const delays = [100,200,300] .map(n = >延迟(n))打印("等待...")const res =等待承诺。所有(延迟)打印("完成。结果是" + res)} main( )
此新语法也称为模板字符串,提供简单的字符串插值和多线字符串。模板文字文档代理允许您拦截另一个对象上的Get / Set调用。这对于观看更改的属性可能很有用,然后更新DOM,或者使创新的API如下WWW代理。 Proxy Docs Let _Nums = [1,2,3]让nums = new代理(_nums,{set(target(target(target(target){target [key] =值打印("&#34调用" + key +" =" +值)打印("更新dom")返回true}})nums.push(4)打印(" nums:" + nums)打印(" _nums:" + _nums)
模块允许您命名为代码并将功能分解为较小的文件。在下面的示例中,我们有一个名为readle.js的模块,它包含在index.html中。注意,模块加载始终延迟,因此它不会阻止HTML呈现。有很多方法可以从js文件导入/导出功能,在导出文档中阅读更多。导入文档好的,所以我没有涵盖过去十年中改变的一切,只是我发现最有用的物品。查看这些其他主题。