首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript ES11新特性

允许在访问可能为 null 或 undefined 的属性或方法时避免出现错误。如果链中的某个属性或方法不存在,则整个表达式的值将为 undefined,而不会抛出异常。 可以使用 ?....可以用来提供默认值,当左侧的值为 null 或 undefined 时,使用右侧的值作为结果。 空值合并操作符 ?? 主要用于检查变量是否为 null 或 undefined,如果是,则返回默认值。...defaultValue; 动态 import() 函数 能够动态地导入模块,返回一个 Promise 对象,可以在需要时按需加载代码。例如: import("....返回的结果是一个数组,每个元素包含原始 Promise 的状态和值。...Promise API,它接收一个 Promise 数组,并在所有 Promise 完成后返回一个新的 Promise,该 Promise 的值是一个包含每个 Promise 状态和结果的对象数组。

19820

JavaScript ES11新特性

允许在访问可能为 null 或 undefined 的属性或方法时避免出现错误。如果链中的某个属性或方法不存在,则整个表达式的值将为 undefined,而不会抛出异常。 可以使用 ?....可以用来提供默认值,当左侧的值为 null 或 undefined 时,使用右侧的值作为结果。 空值合并操作符 ?? 主要用于检查变量是否为 null 或 undefined,如果是,则返回默认值。...defaultValue; 动态 import() 函数 能够动态地导入模块,返回一个 Promise 对象,可以在需要时按需加载代码。例如: import("....返回的结果是一个数组,每个元素包含原始 Promise 的状态和值。...Promise API,它接收一个 Promise 数组,并在所有 Promise 完成后返回一个新的 Promise,该 Promise 的值是一个包含每个 Promise 状态和结果的对象数组。

18810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一文快速上手ES6

    1)、map map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。...类似 java 中的导包:要使用一个包,必须先 导包。而 JS 中没有包的概念,换来的是 模块。 模块功能主要由两个命令构成:`export`和`import`。... `export`命令用于规定模块的对外接口。  `import`命令用于导入其他模块提供的功能。...} 这样,当使用者导入时,可以任意起名字 3)、import 使用`export`命令定义了模块的对外接口以后,其他 JS 文件就可以通过`import`命令加载这 个模块。...例如我要使用上面导出的 util: // 导入 util import util from 'hello.js' // 调用 util 中的属性 util.sum(1,2) 要批量导入前面导出的

    2K10

    1w5000字概括ES6全部特性

    n的自然对数(Math.log(1 + n)) [x] Math.log10():返回以10为底的n的对数 [x] Math.log2():返回以2为底的n的对数 [x] Math.sinh():返回n...Symbol属性的键组成的数组 规则 首先遍历所有数值键,按照数值升序排列 其次遍历所有字符串键,按照加入时间升序排列 最后遍历所有Symbol键,按照加入时间升序排列 数组扩展 [x] 扩展运算符(....():根据指定值填充整个数组,返回原数组 [x] keys():返回以索引值为遍历器的对象 [x] values():返回以属性值为遍历器的对象 [x] entries():返回以索引值和属性值为遍历器的对象...,返回布尔值 has():检查值,返回布尔值 clear():清除所有成员 keys():返回以属性值为遍历器的对象 values():返回以属性值为遍历器的对象 entries():返回以属性值和属性值为遍历器的对象...对象扩展 [x] Object.getOwnPropertyDescriptors():返回对象所有自身属性(非继承属性)的描述对象 [x] Object.values():返回以值组成的数组 [x]

    1.7K20

    javascript ES2020 已经来了

    可选链(Optional Chaining) 可选链语法允许你访问深度嵌套的对象,而不用担心属性是否存在。在处理对象时,你肯定熟悉这样的错误类型。...ES2020为我们带来了globalThis属性,无论你在哪里执行代码,该属性总是引用全局对象。当你不确定代码要在什么环境中运行时,这个属性就会真正发挥作用。...顾名思义,你可以动态地导入模块。使用动态导入,代码会根据需要通过较小的捆绑包来传递(而不是像以前那样需要下载一个大捆绑包)。...当使用动态导入时,导入关键字可以作为一个函数调用,它返回一个Promise。下面是一个例子,说明当用户点击一个按钮时,如何动态导入一个模块。...'John' 当左边操作数未定义或为空时,该操作符将返回右手操作数。在上面的例子中,由于student.name未定义,该操作符将把name的值设置为'John'。

    1.3K40

    ES6特性总结

    map map():接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。...我们的项目中会使用到这种异步处理的方式; 9. 模块化 模块化就是把代码进行拆分,方便重复利用。类似java中的导包:要使用一个包,必须先导包。而JS中没有包的概念,换来的是模块。...模块功能主要由两个命令构成:export和import。 export命令用于规定模块的对外接口。 import命令用于导入其他模块提供的功能。...} } 这样,当使用者导入时,可以任意起名字 import 使用export命令定义了模块的对外接口以后,其他JS文件就可以通过import命令加载这个模块。...例如我要使用上面导出的util: //导入util import util from 'hello.js' //调用util中的属性 util.sum(1, 2) 要批量导入前面导出的name和age:

    2.1K10

    JS与ES6高级编程学习笔记(五)——ECMAScript6 代码组织

    (1)、Set对象的常用操作 size属性:返回Set对象的值的个数,属性的默认值为0。 add(value)方法:在Set对象尾部添加一个元素。返回该Set对象。...,Object.entries()的作用是获取对象自身可枚举属性的键值对数组。...plus export {PI,add as plus} 导出值以修改后的为准,如下模块中导出的i最终的值为200。...3.5、默认导出与导入 每个模块允许默认导出一个成员,导入时可以自定义对象名称,而不需要使用者过多关注导入模块的细节,解决了命名对象导出时使用该模块必须清楚的知道每个导出成员的名称的问题,简单说默认导出使模块的使用更加方便...as default,k}; 导入时同样可以将命名与默认成员混合导入。

    1.7K20

    ES11屡试不爽的新特性,你用上了几个?

    同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值 let p1 = new Promise((resolve, reject) => {...,包含了所有成功与失败的结果,数组每项为对象,均含有status属性,对应fulfilled和rejected。...如果为null或者undefined,即返回右侧,否则返回左侧 0 ?? 5 //return 0 "" ?? 5 //return "" null ??...,抛出无法从未定义的数据中读取某个字段 可选链运算符在查找嵌套对象时,找到链中的第一个「undefined」或者「null」后会立即终止,并返回「undefined」,而不会不断向下查找而导致抛错 const...静态导入消耗加载时间,很多模块并非首屏需要渲染 静态导入会在导入时消耗大量内存 可能会存在有些模块在加载时不存在 减少一些有条件依赖的副作用 //通用导入方式 import("/module/sneaker

    55810

    ES11屡试不爽的新特性,你用上了几个?

    同时,成功和失败的返回值是不同的,成功的时候返回的是一个结果数组,而失败的时候则返回最先被reject失败状态的值 let p1 = new Promise((resolve, reject) => {...,包含了所有成功与失败的结果,数组每项为对象,均含有status属性,对应fulfilled和rejected。...如果为null或者undefined,即返回右侧,否则返回左侧 0 ?? 5 //return 0 "" ?? 5 //return "" null ??...,抛出无法从未定义的数据中读取某个字段 可选链运算符在查找嵌套对象时,找到链中的第一个undefined或者null后会立即终止,并返回undefined,而不会不断向下查找而导致抛错 const obj...静态导入消耗加载时间,很多模块并非首屏需要渲染 静态导入会在导入时消耗大量内存 可能会存在有些模块在加载时不存在 减少一些有条件依赖的副作用 //通用导入方式 import("/module/sneaker

    64342

    最适合Java程序员的ES6教程「6000字|大量案例|多练好懂」

    对象解构允许我们使用变量的名字匹配对象的属性,匹配成功,则会将对象属性的值赋值给变量。...,而window是没有username属性的,所以是undefined。...类似java中的导包:要使用一个包,必须先导包。而JS中没有包的概念,换来的是模块。模块就是一个js文件。 模块功能主要由两个命令构成:export和import。...export:命令用于规定模块的对外接口, import:命令用于导入其他模块提供的功能,import去导入模块只会导入一次。...在一个模块中,可以同时使用export default 和export 向外暴露成员 export可以向外暴露多个成员,同时,如果某些成员,在import导入时不需要,可以在import时不写。

    1.6K20

    ES6

    它接受一个字符串作为参数,然后搜索有没有以该参数为名称的Symbol值。如果有,就返回这个Symbol值,否则就新建并返回一个以该字符串为名称的Symbol值。...,则返回空数组 let arr1 = Array.from({ 0: '1', 1: '2', 2: 3, }) arr1; //[] //元素属性名不为数值且无法转换为数值,返回长度为length...元素值为undefined的数组 转换可迭代对象 转换map let map = new Map(); map.set('key0', 'value0'); map.set('key1', 'value1...ES6模块 ES6引入了模块化,其设计思想是在编译时就能确定模块的依赖关系,以及输入和输出的变量。 ES6的模块分为导出与导入两个模块。...通过export方式导出,在导入时要加{},export default则不需要。 export default向外暴露的成员,可是使用任意变量来接收。

    95021

    【鸿蒙开发基础】ArkTS基础知识 - 类、接口及泛型

    1.前言前面我们学习了 ArkTS基础知识 - 声明变量、常量、类型和函数,本文我们继续学习鸿蒙开发中使用ARKTS的类、接口、泛型、字段、方法、继承以及模块导出和导入的概念,为鸿蒙应用开发者提供了基础理论支持...比如返回数组最后一个元素的函数:function last(x: number[]): number { return x[x.length - 1]}console.log(last([1, 2,...5.2 导出可以使用关键字export导出顶层的声明。 未导出的声明名称被视为私有名称,只能在声明该名称的模块中使用。注意:通过export方式导出,在导入时要加{}。...导入声明用于导入从其他模块导出的实体,并在当前模块中提供其绑定。...导入声明由两部分组成:导入路径,用于指定导入的模块;导入绑定,用于定义导入的模块中的可用实体集和使用形式(限定或不限定使用)。导入绑定可以有几种形式。假设模块具有路径“.

    44020

    【React】组件&事件

    React(二) 创建组件 函数组件 函数组件:使用JS的函数或者箭头函数创建的组件 使用 JS 的函数(或箭头函数)创建的组件,叫做函数组件 约定1:函数名称必须以大写字母开头,React 据此区分组件和普通的...HTML 约定2:函数组件必须有返回值,表示该组件的 UI 结构 // 1....(class)组件 约定1:类名称也必须以大写字母开头 约定2:类组件应该继承 React.Component 父类,从而使用父类中提供的方法或属性 约定3:类组件必须提供 render 方法 约定4:...render 方法必须有返回值,表示该组件的 UI 结构 // 1....导包 import React from "react" import ReactDom from 'react-dom/client' // 函数组件 没有状态 仅仅做一些数据展示的工作,可以使用函数组件

    92150

    9个实用的JavaScript开发技巧,你一定要看下

    then(obj => ...). catch(err => console.log(err)) 如你所见,它返回一个promise,解析为一个模块对象。...静态导入可用于导入关键和必要的模块,而动态导入可提供一些好处: 静态导入会增加代码的加载时间,也可能导致未使用的模块。 静态导入说明符字符串不能动态生成。 静态导入会导致不必要的内存使用。...8、in 运算符 如果要检查对象或其原型链中是否存在指定的属性,则in运算符将为你提供便利。 换句话说,in运算符使检查对象或其原型链中是否存在已定义的属性变得更加容易。...当使用DOM(文档对象模型)时,此属性将非常有用。...你需要创建一个仅引发错误的函数,以解决缺少的参数问题。 创建此功能后,需要将其分配为必填参数的默认值。

    69541

    ECMAScript 2020新特性

    有些场景中,你可能希望根据条件导入模块或者按需导入模块,这时你可以使用动态导入代替静态导入。 在 import() 之前,当我们需要根据条件导入模块时,不得不使用 require()。...,有一个 url 属性,返回当前模块的url路径,只能在模块内部使用。...Promise.allSettled() 方法返回一个在所有给定的 promise 都已经 fulfilled 或 rejected 后的 promise ,并带有一个对象数组,每个对象表示对应的 promise...,该数组的每一项是一个对象,每个对象都有一个 status 属性,值为 fulfilled 或 rejected,如果status 的值是 fulfilled,那么该对象还有一个 value 属性,其属性值是对应的...当左侧的操作数为 null 或者 undefined 时,返回其右侧操作数,否则返回左侧操作数。

    76151

    ES6新特性速查表

    运算符,直接在链式调用的时候判断,左侧的对象是否为null或undefined。如果是的,就不再往下运算,而是返回undefined。 a?.b // 等同于 a == null ?...('/etc/shells'); console.log(f1.toString()); console.log(f2.toString()); }; export + import 模块导入导出.../profile.js'; // 导入时还可以利用as起别名 避免变量冲突 // 从前面的例子可以看出,使用import命令的时候,用户需要知道所要加载的变量名或函数名,否则无法加载。...但是,用户肯定希望快速上手,未必愿意阅读文档,去了解模块有哪些属性和方法。.../export-default'; customName(); // 'foo' 本文为作者原创,手码不易,允许转载,转载后请以链接形式说明文章出处。

    53620

    Es6学习笔记,持续记录

    Promise.allSettled()方法接受一个数组作为参数,数组的每个成员都是一个 Promise 对象,并返回一个新的 Promise 对象。...next方法返回的对象的value属性,就是紧跟在return语句后面的表达式的值(如果没有return语句,则value属性的值为undefined),done属性的值true,表示遍历已经结束。...第四次调用,此时 Generator 函数已经运行完毕,next方法返回对象的value属性为undefined,done属性为true。以后再调用next方法,返回的都是这个值。...(4)如果该函数没有return语句,则返回的对象的value属性值为undefined。...模块别引入时会运行一遍,可通过手动注册window对象的属性,将使用接口注册到全局作用域。

    33720

    ES2020的新特性:String 的 matchAll 方法、动态导入语句 import()等

    在某些场景中,你可能希望根据条件导入模块,或者按需导入模块,这是就可以使用动态导入代替静态导入了 在import() 之前,我们需要更具条件导入模块时只能使用 require() if (xx) {...05、Promise.allSettled Promise.allSettled()方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组...,但是改数组的每一项都是一个对象,每个对象都有一个status属性,值为 fulfilled 和 rejected ....当左侧的操作数为 null 或者 undefined时,返回其右侧操作数,否则返回左侧操作数。...如果使用 || 来为某些变量设置默认值,可能会遇到意料之外的行为。 ?? 操作符可以规避以上问题,它只有在左操作数是 null 或者是 undefined 时,才会返回右侧操作数。

    65360

    前端面试题分享001

    (function(fn){ console.log(fn())//undefined })(temp.baz) 参考地址:0621对象方法的this指向 函数参数为对象时,传入的为引用 解析:...因为对象不是基本类型,所以当其作为参数传入时,使用的是引用地址,所以当其进行值变更的时候,原始内存值也会变化。...this指向 对象的属性不是全部可枚举的 对象中的某些属性时通过for in无法遍历得到的,由enumerable属性判断,如果定义属性为不可枚举的那么就无法得到,propertyIsEnumerable...1.for … in 循环遍历对象自身的和继承的可枚举属性(不含Symbol属性). 2.Obejct.keys(obj),返回一个数组,包括对象自身的(不含继承的)所有可枚举属性(不含Symbol属性...(obj),返回一个数组,包含对象自身的所有Symbol属性. 5.Reflect.ownKeys(obj),返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举.

    57540
    领券