![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ES6
大斧滴熊
这个作者很懒,什么都没留下…
展开
-
ES6-class
1、 es5中通过构造函数定义类function Point(x,y){ this.x = x, this.y = y}Point.prototype.toString = function(){ console.log(this.x + '---' + this.y);}2、es6通过class关键字定义类class写法只是让对象原型的写法更加清晰,更像面向对象编程的语法,上面的代码用es6的class改写如下class Point{ constructor原创 2021-10-17 23:35:25 · 83 阅读 · 0 评论 -
Promise对象、Generator函数、async函数
一、Promise对象Promise是一个构造函数,用来生成Promise实例Promise对象有三种状态:1、pending:"承诺发起(未完成)”2、resolved:“承诺兑现(成功)”3、rejected:“承诺未兑现(失败)”let p = new Promise((resolve,reject)=>{ if(true){ // resolve函数的作用是将Promise对象的状态从“未完成”变为“成功”(即从 pending 变为 resolved)原创 2021-10-10 18:26:53 · 99 阅读 · 0 评论 -
javascript实现异步编程的方法
一、异步编程的方法1、回调函数2、事件监听3、发布/订阅4、Promise对象5、Generator函数6、async函数二、例子1、回调函数setTimeout(()=>{ console.log(111); setTimeout(()=>{ console.log(222); setTimeout(()=>{ console.log(333); },3000) },2000原创 2021-10-10 17:34:09 · 497 阅读 · 0 评论 -
iterable类型
一、iterable类型的数据1、什么是iterable类型的数据一个数据的数据结构中有Symble.iterator属性的数据被称为itarable类型的数据或者可遍历的数据2、iterable类型的数据可以使用for…of遍历3、iterable类型的数据结构有哪些String、Array、Set、Map、函数的arguments对象、Bom的NodeList对象二、iterator接口(遍历器接口)1、iterator(遍历器)2、iterator是一种接口,为各种不同的数据结构提供统原创 2021-10-10 12:48:51 · 4666 阅读 · 0 评论 -
暂时性死区
// 暂时性死区(TDZ),是一种语法上的错误let tmp = 123if(true){ console.log(tmp); let tmp = 'a' }// 在代码块中使用let或const会绑定这个区域,从代码块开始就形成了一个封闭的作用域,不受外部的影响,如果在声明一个变量之前使用这个变量就会报错...原创 2021-10-10 09:45:39 · 61 阅读 · 0 评论 -
Set和Map数据结构
一、Set数据结构1、ES6提供了新的数据类型Set。它类似于数组,但是成员的值都是唯一的,没有重复的值2、Set的实例Set本身是一个构造函数,用来生成Set数据结构,Set函数接受一个数组或者具有iterable接口的其他数据结构作为参数,用来初始化const set = new Set([1,2,3,4,4])console.log(set);//Set(4) { 1, 2, 3, 4 }console.log([...set]);//[ 1, 2, 3, 4 ]const s1 =原创 2021-10-06 23:07:50 · 1138 阅读 · 0 评论 -
ES6函数的扩展
1、函数参数的默认值ES6允许为函数的参数设置默认值,即直接写在参数定义的后面function log(x,y='world'){ console.log(x,y);}log();//undefined worldlog('hello');//hello worldlog('hello','es6')//hello es6log('hello','')//hello2、函数的length属性function add(x,y,z=10){ return x+y+z}co原创 2021-10-06 16:50:07 · 81 阅读 · 0 评论 -
ES6数组的扩展
一、数组的扩展运算符二、数组对象新增的方法二、数组的实例新增的方法1、数组的扩展运算符是三个点(…),它好比rest参数的逆运算,将一个数组转换为用逗号分隔的参数序列console.log(...[1,2,3]);//1 2 3console.log(1,...[2,3,4,5],6);//1 2 3 4 5 62、数组的扩展运算符主要用于函数调用function add(x,y){ return x + y}const numbers = [4,38]conso原创 2021-10-06 16:43:44 · 176 阅读 · 0 评论 -
ES6对象的新增方法
1、Object.is(x1,x2),用来比较两个参数是否严格相等,返回布尔值,与严格相等运算符用法基本一致console.log(Object.is('hello','hello'));//trueconsole.log(Object.is({},{}));//falseconsole.log(Object.is(+0,-0));//falseconsole.log(Object.is(NaN,NaN));//trueconsole.log('hello' === 'hello');//true原创 2021-10-06 09:30:01 · 152 阅读 · 0 评论 -
ES6对象的简写格式
ES6 允许在大括号里面,直接写入变量和函数,作为对象的属性和方法。这样的书写更加简洁。一、属性的简写二、方法的简写三、一个完整的例子一、属性的简写const foo = 'bar';const baz = { foo, //等同于foo:foo,}console.log(baz);//{ foo: 'bar' }function f(x,y) { return{x,y} //等同于return{x:x,y:y}}console.log(f(1,2));//{x:原创 2021-10-05 17:05:00 · 380 阅读 · 0 评论 -
ES6对象的扩展运算符
1、对象的扩展运算符(…)用于取出参数对象的所有可遍历属性,拷贝到当前对象之中let z = {a:3,b:4};let n = {...z};console.log(n);//{a:3,b:4}2、 由于数组是特殊的对象,所以对象的扩展运算符也可以用于数组let foo = {...['a','b','c']}console.log(foo);//{ '0': 'a', '1': 'b', '2': 'c' }3、如果扩展运算符后面是一个空的对象,则没有任何效果console.log(原创 2021-10-05 16:54:31 · 1092 阅读 · 0 评论 -
ES6模块化
CommonJS模块化1.1package.json 这个文件是模块的清单文件,记录了当前模块的基本信息、依赖信息等version 模块版本name 模块名称description 模块描述main 入口文件private 如果设置为true,可以防止应用程序/软件包被意外地发布到npmscripts 脚本dependencies 产品依赖devDependencies 开发依赖engines nodejs版本号browserslist 支持的浏览器1.2CommonJS模块化原创 2021-09-26 19:57:37 · 115 阅读 · 0 评论 -
iterable----ES6新增的类型
ES6新增类型 iterableiterable是es6新增的类型,iterable类型的数据有,Array,Set,Map,Set和Map是es6新增的数据类型,Array:数组,有序的元素序列Set:ES6新增的数据结构,类似于数组,区别在于Set没有索引,并且Set中的元素都是唯一的Map:ES6新增的数据结构,类似于对象,区别在于普通对象的key必须是字符串或者数字,而Map的key可以是任何数据类型1.Set1.1Set允许存储任何类型的唯一值,它类似于数组,但是成员的值都是唯一的,没原创 2021-09-27 19:25:06 · 384 阅读 · 0 评论 -
ES6块级作用域
一、在es5语法中,只有全局作用域和函数作用域,是没有块级作用域这个概念的,从而会导致一些特殊的情况1、内层变量可能会覆盖外层变量var tmp = new Date();function f() { console.log(tmp); if(false){ var tmp = 'hello word'; }}f()//undefined2、用来计数的循环变量泄露为全局变量var s = 'hello';for(var i = 0; i < s原创 2021-10-04 17:07:48 · 294 阅读 · 0 评论 -
ES6数值的扩展
1、Number.isFinite() 用来检测一个数值是否为有限的,参数为待检测的数值,返回值为布尔。如果参数类型不是数值,一律返回falseconsole.log(Number.isFinite(15));//trueconsole.log(Number.isFinite(0.8));//trueconsole.log(Number.isFinite(NaN));//falseconsole.log(Number.isFinite(Infinity));//falseconsole.log(N原创 2021-10-05 11:43:58 · 55 阅读 · 0 评论 -
ES6字符串的扩展
1、 es6为字符串添加了遍历器接口,使得字符串可以被for…of循环遍历for(let item of 'hello'){ console.log(item);}//结果//'h'//'e'//'l'//'l'//'o'2、字符串的新增方法(1)includes():返回布尔值,表示是否找到了参数字符串let s = 'hello world!';console.log(s.includes('e'));//true(2)startsWith():返回布尔值,表示参数原创 2021-10-04 23:29:07 · 219 阅读 · 0 评论