ES6
文章平均质量分 66
ES6
w-somebody
这个作者很懒,什么都没留下…
展开
-
关于阅读 ES6- Module整理的问题
ES6-Module原创 2022-05-24 21:21:14 · 723 阅读 · 1 评论 -
关于阅读 ES6- async整理的问题
ES6-async原创 2022-05-24 21:15:30 · 174 阅读 · 0 评论 -
关于阅读 ES6- Generator 整理的问题
ES6-Generator原创 2022-05-24 21:11:44 · 199 阅读 · 0 评论 -
关于阅读 ES6- Class整理的问题
ES6-class原创 2022-05-24 21:05:31 · 262 阅读 · 0 评论 -
关于阅读 ES6- Iterator 整理的问题
1、JavaScript有几种数据集合答:四种,分别是 Array Object Map Set2、遍历器(iterator)是什么答:① 是一种机制也是一种接口,为不同的数据结构提供统一的访问机制② 如果数据集合具有iterator接口就可以完成遍历操作,且称这种数据结构是可遍历的3、遍历器(iterator)的作用有哪些答:① 为各种数据集合提供了统一的访问接口② 使得数据结构中的成员能按某种次序排列③ ES6创建了新的遍历命令 for…of,iterator遍历器主要供for原创 2022-05-12 14:36:06 · 216 阅读 · 0 评论 -
关于阅读 ES6- Promise 整理的问题
1、简述ES中的Promise对象答:① Promise是一个构造函数,可以通过 new 关键字进行创建实例② Promise是异步编程的一种解决方案。③ Promise就像一个容器,里面存在着未来才会结束的事情结果。2、Promise的特点答:① Promise对象的状态不受外界的干扰,只有异步操作的结果才能决定最终的状态② Promise的状态一旦改变,就不会再进行变化。3、Promise有哪些状态及状态流转答:① 有3种状态,有2种状态流转② 三种状态分别是,pending原创 2022-05-09 22:15:19 · 393 阅读 · 1 评论 -
关于阅读 ES6- Reflect 整理的问题
1、ES6中的Reflect对象答:Reflect对象和Proxy对象一样,都是为了操作对象而提供的一种全新的API。2、ES6中Reflect存在的目的是什么答:一是将Object对象上的一些明显属于语言内部的方法抽离出来放到Reflect二是修改了Object对象上一些方法的返回值,让不合理的返回值(如因入参的类型不符合而返回报错)变得更加的合理三是让Object操作都变成函数行为。例如让命令式的 name in obj 和 delete obj[name] 变成 Reflect.has原创 2022-05-05 23:15:13 · 443 阅读 · 0 评论 -
关于阅读 ES6- Proxy 整理的问题
1、Proxy是什么?答:用来修改默写默认操作的行为,在语言层面上修改,是属于一种‘元编程’,即对编程语言进行编程。Proxy可以理解成在目标对象前架设了一个‘拦截层’。外界想要访问这个对象,需要经过这层拦截,因此proxy也被称为‘拦截器’。例如,在获取或添加某个对象的属性前进行拦截var obj = new Proxy({b: 2}, { get: function(target, key, receiver){ // target是目标对象,key是对象属性 ,receiver是Pro原创 2022-05-05 17:18:53 · 1143 阅读 · 0 评论 -
关于阅读 ES6- Set和Map 整理的问题
1、Set数据结构答:是ES6新增的一种数据结构,类似于数组,里面的值是唯一不可重复的Set本身是一个构造函数,需要通过new关键字创建实例,进而生成Set数据结构let s1 = new Set([1,2,3,4,5]) // 入参为 数组对象let s2 = new Set()s2.add(1) // 通过add添加Set成员let s3 = new Set([…document.querySelectorAll(‘div’)]) // 入参为类数组对象2、Set数据结构特点答:里原创 2022-05-04 17:00:12 · 971 阅读 · 0 评论 -
关于阅读 ES6- Symbol 整理的问题
1、ES6为什么引入 Symbol ?答:ES5中的对象的属性名是字符串,属性名不能重复,否则会覆盖。当你使用别人定义的对象,并想往里面添加新的方法,如果方法名和对象中的属性名进行重复,就会造成覆盖的后果,因此Symbol就是为了解决这个问题而产生的。let obj = {[Symbol(‘a’)]: 111,[Symbol(‘a’)]: 222,}2、Symbol类型答:Symbol值通过Symbol()函数进行生成,可作为对象的属性名。Symbol类型的属性名是独一无二的,不原创 2022-05-03 21:36:43 · 641 阅读 · 0 评论 -
关于阅读 ES6- 运算符 整理的问题
1、ES2016指数运算符答:使用两个星号()表示指数运算符。当有多个指数运算符,从右往前进行计算。22 = 4 ; 23 = 8; 24 = 16;let a = 3; a**=3 // 赋值运算,结果为 27 ;223 // 相当于 2**(2**3),结果为 2562、链判断运算符答:也叫做 Null传导运算符,格式为 ?. 是一种短路机制用于判断当前对象是否存在,如果不存在就返回undefined,不再继续后面的运算例如,要安全获取 a.b.c.d的值ES5中写法是 let原创 2022-05-02 22:02:38 · 287 阅读 · 0 评论 -
关于阅读 ES6- 对象 整理的问题
1、ES6对象属性的简写答:当对象的属性值是一个变量,且该变量和属性名相同,那么可以直接写属性名即可let a = ‘111’let obj = {a: a}以上简写成:let obj = {a}2、ES6对象中方法的简写答:直接省略冒号和function关键字let obj = {a: function(){ console.log(111); }}简写成let obj = {a(){console.log(111); }}3、JavaScript定义对象属性原创 2022-05-02 17:19:41 · 347 阅读 · 0 评论 -
关于阅读 ES6- 数组 整理的问题
1、什么是扩展运算符答:由三个点号(…)表示,可以将数组转化为用逗号分隔的参数序列2、扩展运算符的用处答:函数的rest剩余参数获取用于深度拷贝一个数组用于代替Math的求最大值方法: Math.max.apply(null, arr) -> Math.max(…arr)用于代替数组的拼接concat:arr1.concat(arr2) -> […arr1, …arr2]用于代替数组的push方法 :Array.prototype.push.apply(arr1, arr2)原创 2022-04-29 19:44:01 · 397 阅读 · 0 评论 -
关于阅读 ES6- 函数 整理的问题
1、ES5怎么设置函数参数的默认值答:function aa(x){x = x || ‘hello’console.log(x)}2、ES6怎么设置函数参数的默认值答:可直接设置在参数后面function aa(x = ‘hello’){console.log(x)}3、ES6中函数的默认参数有什么特点答:默认参数是惰性的,每次调用函数,都是重新计算,而不是在每次进行叠加let x = 11function a(p = x+1){console.log§}a() //原创 2022-04-28 22:15:50 · 271 阅读 · 0 评论 -
关于阅读 ES6- 数值 整理的问题
1、ES6二进制和八进制、十六进制的表示方法是什么?答:二进制表示使用前缀0b 或者 0B ,例如 0b101011、0B1110八进制使用前缀 0o 或者 0O ,例如 0o121 、 0O123十六进制使用前缀 0x 或者 0X, 例如 0x123 、0X1232、如何将二进制或者八进制转换为十进制的值?答:使用Number方法Number(0b1010)Number(0o123)3、常见的数值分隔符有哪些答:有两种,逗号分隔符 、下划线分隔符100,000,000100原创 2022-04-26 17:07:04 · 1183 阅读 · 0 评论 -
关于阅读 ES6- 正则 整理的问题
1、怎么声明一个正则答:可通过下面几种方式进行声明var r1 = new RegExp(/xyz/ig) // 正则为xyz 修饰符为 igvar r2 = new RegExp(‘xyz’, ‘ig’) // 正则为xyz 修饰符为 igvar r3 = new RegExp(/xyz/i, ‘g’) // 正则为xyz 修饰符为 g,覆盖了修饰符 ivar r4 = /xyz/ig // 正则为xyz 修饰符为 ig2、怎么获取一原创 2022-04-25 22:23:59 · 190 阅读 · 0 评论 -
关于阅读 ES6- 字符串 整理的问题
1、字符的码点超出 \u0000-\uffff时怎么进行表示呢答:方式1:使用双字节表示,例如 ‘\uD842\uDFB7’方式2:ES6中增加大括号表示法,例如 \u{20BB7}‘’2、每个字符有几个字节呢答:Unicode码点小于 \uffff,一个字符有两个字节Unicode码点大于\uffff,一个字符有四个字节3、JavaScript有几种表示字符的方式呢答:六种,例如表示 字符z‘z’‘\z’‘\172’‘\x7A’‘\u007A’‘\u{7A}’4、s原创 2022-04-25 12:45:17 · 368 阅读 · 0 评论 -
关于阅读 ES6- 变量的解构赋值 整理的问题
1、什么是变量解构答:是ES6中新增的特性,指的是按照一定的模式,从数组或者对象中提取值,并且赋值给相应的变量2、对象解构和数组解构有什么区别?答:数组解构与位置密切相关,而对象解构可以不用遵循顺序,只要变量和对象的属性同名即可3、什么数据类型可以进行解构?答:对象,数组,Set、等具有iterator接口的,字符串、数值、布尔(会先转成对象,再进行解构赋值)函数参数解构赋值4、解构赋值的作用答:交换变量的值、提取后台返回的JSON数据,项目文件中引入外部文件的的具体方法时、原创 2022-04-25 12:42:39 · 790 阅读 · 0 评论 -
关于阅读 ES6-let 和 const 命令整理的问题
1、JavaScript声明变量的方式有哪些?答:六种:var function let const class import2、ES5和ES6有什么区别?答:ES5是ECMAScript的第五次修订,在2009年完成标准化;ES6是ECMAScript第六次修订,在2015年完成,也叫做ES2015;ES6是在ES5的基础上进行了改进,比ES5更加的简洁,有效的提升了开发的效率;ES6还增加了一些特性:let和const 、Map和Set、 async和await、Promise、 f原创 2022-04-25 12:40:55 · 411 阅读 · 0 评论 -
关于阅读ES6-ECMAScript 6 简介整理的问题
1、ECMAScript和JavaScript的关系答:ECMAScript是JavaScript的标准,JavaScript是ECMAScript的具体实现2、ECMAScript标准为什么不取名JavaScript?答:一个是因为JavaScript已经被Netspace公司用作了商标,二是为了体现这个语言的制定者是ECMA组织而非Netspace,便于保持语言的开放性和中立性。3、ES6和ECMAScript2015有什么关系?答:ES6是ECMAScript5.1版本的下一个版原创 2022-04-25 12:36:44 · 844 阅读 · 0 评论 -
ES6 - Array.from()方法 转换类数组或 iterator(Map、Set)为真数组
1、将类数组转为数组let likeArr = { '0': 'aaa', '1': 'aaa', '2': 'aaa', length: 3} // ES5 将类数组 转为数组let arr1 = [].slice.call(likeArr)// ES6 将类数组 转为数组let arr2 = Array.from(likeArr)2、将 Set 转为数组let set = new Set([1,2,3,4,5])let arr3 = Array.fro原创 2022-03-07 16:33:03 · 491 阅读 · 0 评论 -
ES6-数组+扩展运算符
1、使用扩展运算符,将数组进行展开console.log(...[1,2,3,4,5]) // 1 2 3 4 5let arr = [ ...(x > 0 ? [1,2,3]: [4,5,6]), 7,8,9][...[]] // [][...[], 1] // [1]2、扩展运算符可以用于函数传参,rest参数function aaa(x, ...rest){ console.log(rest); // [2,3,5,6]}aaa(1,...[2,3原创 2022-03-04 17:05:48 · 293 阅读 · 0 评论 -
ES6-函数的扩展总结-02
1、函数的name属性,获取函数名(function aaaa() {}).name // 'aaaa'//匿名函数返回空字符串(function () {}).name // ''(function eee() {}).name // 'eee'// 构造函数都返回 anonymous(new Function).name // 'anonymous'// bind 返回的函数,会在 name之前加上 bound(function aaa() {}).bind({}).name //原创 2022-03-04 10:53:08 · 202 阅读 · 0 评论 -
ES6-函数的扩展总结-01
1、函数参数默认值function add(a = 1, b = 2) { //let a = 2; //报错,不能有同名的参数 //const b = 3; //报错,不能有同名的参数 return a + b}add(); // 3add(3, 4); // 72、解构赋值 和 函数参数的结合使用// 设置了解构赋值y的默认值function output1({x, y = 1}) { console.log(x, y)}output1(); // 报错 Typ原创 2022-02-22 13:49:47 · 570 阅读 · 0 评论 -
ES6-数值扩展
1、二进制数值用 0b 或者 0B作为前缀,八进制用 0o 或者 0O表示2、数值分隔符可以使用 _ 进行分隔,增加数值的可读性100_000_000 === 10**8 // true0.000_001 === 0.000001 // true0.00000_1 === 0.000001 // true1e10_000 // 科学计数法有分隔符的写法0b1_001 //二进制0O1_001 //八进制0X1_001 //十六进制// 1、分隔符不能放在数值前后,会报错。例如:_100原创 2022-02-21 17:52:11 · 461 阅读 · 0 评论 -
ES6-字符串新增的方法
1、String.formCodePoint(Unicode码) 和 String.fromCharCode(Unicode码):其作用都是将 Unicode 码转为字符串;String.fromCodePoint() 可以识别大于 0xffff 的码点字符,而 String.fromCharCode() 不能识别大于 0xffff 的字符String.fromCodePoint(0x20BB7) // '????'String.fromCharCode(0x20BB7) // 舍弃最高位,直接返回原创 2022-02-14 14:50:23 · 888 阅读 · 0 评论 -
前端 图片下载
图片下载是项目开发过程中经常提到的需求点,本文对以往用过,见过的图片下载方法进行一个汇总,如果后面有遇到,会继续进行补充一、如果后台直接给的图片下载地址 URL。如后台给的图片下载地址为:http://hrmanage-test.edtsoft.com/hr-manage-admin/aaa/bbb/export/test.png方式1: 直接使用 HTML的 a 元素进行图片的下载<a href="http://hrmanage-test.edtsoft.com/hr-manage-adm.原创 2022-01-28 17:52:15 · 1655 阅读 · 1 评论 -
ES6中的 Map 理解
之前 ES5 中是没有 Map 这种数据集合的,ES6才把它添加进来了。Map 是 key-value 的集合,key 可以是任意类型的数据,类似于对象,但对象的 key 只能是字符串。下面分别详细说说我对它特性及使用的了解。Map 数据集合1、通过 new Map() 创建 Map 实例let map = new Map()2、向 Map 集合中添加值-- key 可以是任意类型的数据// 方式 1: 通过传入二维数组let map1 = new Map([[1, 2], [3, 4],原创 2022-01-27 16:12:03 · 2406 阅读 · 1 评论 -
ES6中的 Set 理解
之前 ES5 中是没有 Set这种数据集合的,ES6才把它添加进来了。Set 是 key 的集合,很类似于一维数组,而且里面的值是不重复的。下面分别详细说说我对它特性及使用的了解。一、Set 数据集合1、通过 new Set() 来创建 Set 实例let set = new Set()2、Set 添加值// 方式 1: 通过 add() 方法进行添加---注意会去除重复添加的值let set1 = new Set()set1.add(0.222)set1.add(11)set1.a原创 2022-01-27 11:25:50 · 1427 阅读 · 0 评论 -
ES6---标签模板
1、含义:模板字符串紧跟在函数名之后,该函数则被调用来处理这个模板字符串alert`hello` // 相当于:alert(['hello'])2、标签模板并不是模板,而是函数调用的一种方式,其中‘标签’就是函数,紧跟函数名后面的‘模板字符串’就是函数的参数3、标签模板中模板字符串可以含有变量let a = 222, b = 333function fun (stringArr, value1, value2){ //把位于变量左右两边的字符提取出来组成数组,如果变量左右两原创 2022-01-21 16:29:16 · 1322 阅读 · 0 评论 -
ES6---模板字符串
1、使用反字符(``)标识,可以作为普通字符串来使用,也可以定义多行字符串,并且其中还可以嵌入变量(使用 ${变量名} 嵌入),所有的空格换行等会被保留,书写起来代码更加优美const content = 'this is content'const str = `<div> <p>p标签</p> <div>内容是:${content}</div>原创 2022-01-21 16:17:52 · 629 阅读 · 0 评论 -
ES6---字符串-01
一、字符的Unicode表示方法1、ES加强了用Unicode码点(\u0000\uffff)来表示字符,超出\u0000\uffff的字符需要用两个Unicode码点来表示,或者直接使用一个大括号包裹的Unicode码点来表示// 1、未超出 \u0000~\uffff 的字符,表示方法:"\u0061" // 'a'// 2.1、超出 \u0000~\uffff 的字符,表示方法1:"\uD842\uDFB7" // "????"// 2.2、超出 \u0000~\uffff 的字符,表原创 2022-01-21 15:58:13 · 249 阅读 · 0 评论 -
ES6---变量解构赋值的用途
1、交换变量的值let a= 1, b = 2;[a, b] = [b, a];2、获得多个返回值function aa(){ return [1,2,3]}let [a, b, c] = aa() // a->1 b->2 c->3function bb(){ return {name: 'bob', age: 11}}let {name, age} = bb()// name->'bob' age->113、函数参数的定义function原创 2022-01-21 15:38:30 · 281 阅读 · 0 评论 -
ES6---函数参数的解构 && 圆括号问题
1、函数参数的解构–简单使用function aa([x, y]){ console.log(x+y)}aa([1,2]) // 32、函数参数的解构–数组map方法中使用[[1,2], [3,4]].map(([a, b]) => a + b) // [3, 7]3、函数参数的解构–解构指定默认值function aaa({x = 1, y = 2} = {}){ console.log(x, y)}aaa({x: 3, y: 8}) // 3, 8aaa({x: 3原创 2022-01-21 15:29:58 · 651 阅读 · 0 评论 -
ES6---字符串解构、数值解构、布尔值解构
1、字符串解构赋值时,会转换成类似一个数组,有length属性let [a, b, c, d, e] = 'hello' // a->'h' b->'e' c->'l' d->'l' e->'o'let {length: len} = 'hello' // len -> 52、解构等式的右边如果时数值或布尔值,会先转换成对象let {toString: s} = 123 // s -> Number.prototype.toStringlet {to原创 2022-01-21 15:10:41 · 602 阅读 · 0 评论 -
ES6---对象解构
1、变量名与属性名对应,次序不一样,可以正常结构let {name, age} = {age: 11, name: 'bob'} // name->bob age->112、找不到相应的属性名,则值为undefinedlet {a, b} = {a: 1} //a->1 b->undefined3、变量名和属性名不一样需要这么写let {n: name, a: age} = {n: 'bob', a: 11} // name->bob age->11 4原创 2022-01-21 15:04:33 · 2309 阅读 · 0 评论 -
ES6---数组解构
1、按照对应的位置进行赋值let [a, b, c] = [1, 2, 3] // a->1 b->2 c->32、两边的模式相同也可进行匹配赋值let [a, [b], c] = [11, [22], 33] // a->11 b->22 c->33let [, , c] = [1, 2, 3] // c->3let [a, ...c] = [1, 2, 3, 4, 5]// a->1 c->[2,3,4,5]let [a,原创 2022-01-21 14:48:43 · 822 阅读 · 0 评论 -
ES6---let&const总结点
1、变量声明方式: var 、function 、let 、const 、class、import2、let、const声明的变量只在它们所在的代码块中有效,形成“暂时性死区”(temporal dead zone: TDZ)3、let命令用于for循环中,依靠JavaScript引擎才能记住每次循环的let变量4、只有var声明的变量会存在变量提升,let和const不会5、let、const不可以重复声明一个变量,会报错6、ES5只用全局作用域和函数作用域,ES6增加了块级作用域7、块级作用原创 2022-01-21 14:36:57 · 489 阅读 · 0 评论 -
export和export defaul及import的理解
export和export.default及import是ES6的语法。export和export.default可以用来导出变量、函数、文件、模块等等,import用于在某个模块中加载另一个含有export或者export.default的模块。值得注意的是,在一个文件或者模块中,import和export可以有多个,但是export.default只能有一个。下面分别介绍一下export,export.default及import的用法:export的命令1、通常一个模块就是一个文件,文件中.原创 2021-10-12 21:28:12 · 2548 阅读 · 0 评论