![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
es6
bzcoder
这个作者很懒,什么都没留下…
展开
-
js判断对象是否为空
利用es6新增的对象实例属性Object.keys()获取由对象key组成的数组,判断数组长度即可原创 2022-04-22 10:11:11 · 297 阅读 · 0 评论 -
es6学习:Generator函数
写法:function* helloWorldGenerator() { yield 'hello'; yield 'world'; return 'ending';}var hw = helloWorldGenerator();Generator 函数是分段执行的,yield表达式是暂停执行的标记,而next方法可以恢复执行。hw.next()// { value: 'hello', done: false }hw.next()// { value: 'world', d原创 2020-08-04 19:59:19 · 147 阅读 · 0 评论 -
es6学习:Promise对象
Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。什么叫异步呢?简单说就是将一个未来结束的事件装到一个盒子里,等到同步事件都结束了他才会结束。Promise需要注意的就是他的三个状态: pending(进行中) fulfilled(已成功) rejected(已失败)他们只存在两种变换:从pending变为fulfilled和从pending变为rejected基本用法const promise = new Promise(function(res原创 2020-08-03 14:07:12 · 117 阅读 · 0 评论 -
es6学习:Reflect对象
Reflect的作用有以下几点:1、将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect对象上可以拿到语言内部的方法。2、修改某些Object方法的返回结果,让其变得更合理。比如,Object.defineProperty(obj, name, desc)在无法定义属性时,会抛出一个错误,而Reflec原创 2020-08-02 11:26:28 · 406 阅读 · 0 评论 -
es6学习:Proxy
Proxy这个构造函数的作用,简单说就是给原来的对象添加一个拦截层,当你要访问这个对象时,会先通过这层拦截。用法:var proxy = new Proxy(target, handler);其中第一个参数是所要拦截的目标对象,第二个参数是定制拦截行为的对象;写法都是一样的,唯一的不同就是handler的写法。例如:var proxy = new Proxy({}, { get: function(target, propKey) { return 35; }});pro原创 2020-08-01 15:01:10 · 106 阅读 · 0 评论 -
es6学习:Set和Map
Set:Set本身是一个构造函数,最大的特性就是成员的值都是唯一的:const set = new Set();const set = new Set([1, 2, 3, 4, 4]); //{1, 2, 3, 4}这段代码中,set是一个对象,不要把他当作数组了通过扩展运算符将其转化为数组:[...set]; // [1,2,3,4]有了Set很明显可以用于数组去重:// 去除数组的重复成员[...new Set(array)]当然,字符串也可以去重:[...new S原创 2020-07-30 15:28:24 · 103 阅读 · 0 评论 -
es6学习:Symbol
Symbol存在的意义就是为了避免对象的属性名冲突,下面是几种对象中的写法:let mySymbol = Symbol();// 第一种写法let a = {};a[mySymbol] = 'Hello!';// 第二种写法let a = { [mySymbol]: 'Hello!'};// 第三种写法let a = {};Object.defineProperty(a, mySymbol, { value: 'Hello!' }); //对原创 2020-07-29 17:26:29 · 113 阅读 · 0 评论 -
es6学习:函数的扩展
1、现在,js可像java一样,直接给参数设置默认值了,而不像es5那么麻烦function Point(x = 0, y = 0) { this.x = x; this.y = y;}const p = new Point();p // { x: 0, y: 0 }但是要注意的是,如果要设置默认值,一定要设置在参数最后的位置:function f(x, y = 5, z) { return [x, y, z];}f() // [undefined, 5, undefine原创 2020-07-28 11:03:16 · 119 阅读 · 0 评论 -
es6学习:对象的扩展
还是那句话,js为了更加成熟,逐渐的类似于java这种语言,在对象扩展这方面也是非常明显。较常用的两点:1、属性的简洁表示function f(x, y) { return {x, y};}// 等同于function f(x, y) { return {x: x, y: y};}f(1, 2) // Object {x: 1, y: 2}最主要的还是方法的简写,跟java一样了:const o = { method() { return "Hello!";原创 2020-07-27 21:01:47 · 66 阅读 · 0 评论 -
原生js实现的ajax
简介ajax可以说是互联网发展的一个至关重要的因素之一,因为它实现了不重新加载页面情况下的页面刷新,即当我们在浏览页面的时候,不用主动去刷新页面,ajax会自动帮助我们刷新接下来的内容。ajax的使用方法://第一步,创建XMLHttpRequest对象 var xmlhttp; if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHt原创 2020-07-27 11:48:13 · 98 阅读 · 0 评论 -
es6学习:数组的扩展
1、扩展运算符:…将一个数组转为用逗号分隔的参数序列。console.log(...[1, 2, 3])// 1 2 3该方法在函数中有较大作用:const numbers = [4, 38];add(...numbers) //将数组转化为参数序列赋值数组:由于扩展运算符不会改变原数组,所以可以用它来赋值数组:const a1 = [1, 2];// 写法一const a2 = [...a1];// 写法二const [...a2] = a1;合并数组:由于…的特原创 2020-07-23 13:15:35 · 152 阅读 · 0 评论 -
es6学习:数值的扩展
为使js语言更加模块化,es6将很多全局的东西移植到了相应的模块内例如将全局方法parseInt()和parseFloat(),移植到Number对象上面,行为完全保持不变。这两个方法很简单,就不作说明了。Number.isFinite(), Number.isNaN() :isFinite(25) // trueisFinite("25") // trueNumber.isFinite(25) // trueNumber.isFinite("25") // falseisNaN(NaN)原创 2020-07-21 20:02:32 · 113 阅读 · 0 评论 -
es6学习:字符串的扩展及新增方法
1、字符串的扩展很多,但最重要的肯定是模板字符串传统的输出模板写法非常繁琐,要不断的使用连接符,es6模板字符串很好的解决了这个问题:let a = 10;let str = 'abcd' //传统拼接字符串的写法+ 'efg' + a + 'hijklmn'+ 'opq';//es6模板字符串的写法let str = `abcdefg${a}hijklmnopq`;如果使用模板字符串表示多行字符串,所有的空格和缩进都会被保留在输出之中。如果不想要这个换行,可以使用trim原创 2020-07-21 10:51:58 · 118 阅读 · 0 评论 -
es6学习:变量的解构赋值及应用,json
解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。由于undefined和null无法转为对象,所以对它们进行解构赋值,都会报错。1、数组的解构赋值:本质上就是模式匹配,只要等号两边的模式相同,左边就会被右边赋值。例如:let [foo, [[bar], baz]] = [1, [[2], 3]];foo // 1bar // 2baz // 3let [ , , third] = ["foo", "bar", "baz"];third // "baz"let [x原创 2020-07-13 21:31:44 · 371 阅读 · 0 评论 -
es6学习:let与const的理解与使用
在一开始学习js的时候,相信很多学过c c++ java等语言的人都会觉得很奇怪,特别是在声明变量的时候,比如我先console.log(a) 后 var a = 10;在上述语言中一定会报错,但在js中由于变量声明的提升,会输出未定义,这很不正常,也是js的一个缺陷,js很灵活,但过于灵活。在es6的版本更新中,出现了 新的声明变量的方法:let const学过上述语言的人只需要把let当作上述语言中声明变量的方法即可,几乎相同,es6的版本升级让js更加成熟了。有了let之后我们使用变量之前必须原创 2020-07-12 11:35:40 · 137 阅读 · 0 评论