
ES6
文章平均质量分 93
caicsama
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
antd4里table的滚动是如何实现的?
rc-table里水平滚动如何实现?原创 2023-02-27 21:04:10 · 2148 阅读 · 1 评论 -
ES6中字符串使用小tips
ES6中,字符串添加了Iterable接口,但是不可以使用方括号对属性值进行修改let str="abc";console.log(str[1]);//b//目的:修改字符串的第二个字符为大写Bstr[1]='B';console.log(str);//abc解决:let str=[..."abc"];str[1]="B";console.log(str.join(""));//aBcWhen using bracket notation for character access,转载 2020-05-10 14:48:20 · 144 阅读 · 0 评论 -
JS创建二维数组-竟然不一样
一般创建数组只修改一位使用es6方法修改数组,一列会被修改一般创建二位数组:let arr1=[];for(let i=0;i<4;i++){ arr1[i]=new Array(); for(let j=0;j<4;j++){ arr1[i][j]=false; }}//修改其中一个元素arr1[3][1]=true;co...原创 2020-05-07 01:11:22 · 909 阅读 · 1 评论 -
区分深复制和浅复制
复制有层次性,针对引用数据类型深复制:从表面复制到原型,复制对象拥有控制自身属性而不影响别的被复制对象属性浅复制:只复制表面,复制对象和被复制对象,任何一个修改都会影响对方浅复制*:解构var objcopy=[...arr]Object.assign()var objcopy=Object.assign([],arr)arr.slice()var objcop...转载 2020-04-15 10:40:57 · 207 阅读 · 0 评论 -
Set的使用 --《算法图解》
交集、并集、差集var s1=new Set(['a','b','c','v']);var s2=new Set(['a','c','f','h']);//获得交集var co=new Set([...s1].filter(item=>s2.has(item)));console.log(co);//获得并集var binji=new Set([...s1,...s2]);...转载 2020-04-01 15:58:03 · 223 阅读 · 0 评论 -
ES6-async
async函数:异步函数,返回一个Promises对象,then添加回调函数函数执行的时候,遇到await先返回,等到异步操作执行完成,再执行后面的内容await:暂停异步函数的执行,获得当前Promise的状态下的[[PromiseValue]]async function res(){ var p=new Promise((resolve,reject)=>{ resolve...原创 2020-03-31 21:18:21 · 121 阅读 · 0 评论 -
ES6-Iterator
Iterator:遍历器ES6提供默认的遍历接口属性:[[Symbol.Iterator]]Chrome的Console中输入new Array()在Array中,数组的值values()是默认的可遍历属性具有改遍历器的原生数据结构:ArrayMapSetStringNodeListarguments都可以使用for…of进行遍历遍历的进化史for循环控制语句...原创 2020-03-31 16:22:54 · 159 阅读 · 0 评论 -
ES6-Promise
rom转载 2020-03-30 00:58:01 · 121 阅读 · 0 评论 -
闭包+this-js
有权访问另一个函数作用域的函数[[Scopes]]内部属性上有三个值 Closure Script(在chrome浏览器中编译 就 ) Global转载 2020-03-28 21:05:01 · 124 阅读 · 0 评论 -
call()、apply()、bind()
call():apply()bind()特定的作用域中调用函数,修改函数体内this的指向第一个参数都是修改this的指向后面的参数是传递给函数的参数,apply传递个函数的参数是数组,call()传递个参数的是用逗号隔开的参数bind返回调用的函数,call、bind是立即执行...转载 2020-03-27 10:50:13 · 119 阅读 · 0 评论 -
ES6-Class
对象是具体的事物,类是泛指的,抽象对象的公共部分定义:使用class定义类,必须有constructor构造函数,传递参数,返回实例对象;如果没有定义,会自动创建默认定义类的时候使用严格模式,不用添加class Person{ constructor(name,age){ this.name=name; this.age=age; }}数据类型:Function本身是构造...转载 2020-03-26 01:23:40 · 159 阅读 · 0 评论 -
JS-垃圾回收
两种垃圾回收机制:1.标记清除当变量离开运行环境,就标记为可清除2.引用计数跟踪每个值被引用的次数引用次数为0的时候,作为垃圾回收可能会出现,循环引用问题,把a赋给b,b再将值赋给aBOM和DOM的垃圾回收机制是引用计数,防止出现循环引用,结束使用的时候,需要解除引用。将变量值等于null就解除了变量与变量之间的连接。确保用最少的内存让页面呈现更好性能全局变量和全局对象,使用...转载 2020-03-23 00:21:46 · 114 阅读 · 0 评论 -
事件-JS
注册事件的方法:事件流是从页面中接收事件的顺序IE是事件冒泡流Netscape是事件捕获流事件冒泡从具体元素开始到最不具体的元素单击div,触发click事件<!DOCTYPE html><html><head> <title>事件</title></head><body> <div...原创 2020-03-18 19:30:16 · 161 阅读 · 0 评论 -
ES6-Set和Map结构
Set类似数组,只有value,成员唯一,无重复,本质构造函数通过new实例化Set实例参数:数组(或有iterable接口的数据结构)字符串、数组、对象、Set、Map、arguments、元素集合(DOM)let set=new Set('hello');console.log(set);属性:size:成员总数实例方法:add():添加某个值,返回新的Setdelet...原创 2020-03-14 22:14:55 · 134 阅读 · 0 评论 -
ES6-proxy
proxy–修改默认行为,拦截器,对外界访问进行过滤和修改,代理生成proxy实例或者说是对象方法的重载let proxy=new Proxy(target,handler)target:拦截器要拦截的目标对象handler:定制拦截行为,一个拦截器可以定义多个拦截行为,行为函数表现let proxy=new Proxy(target,handler)Proxy拦截器绑定到Proxy...原创 2020-03-14 22:07:34 · 731 阅读 · 0 评论 -
ES6-Symbol
Symbol:新的原始数据类型,不能添加属性let sym=Symbol();//判断sym的数据类型console.log(typeof Symbol);和String数据类型相似,但是每次声明的都是唯一的,不是对象,不能用new进行声明let sym1=Symbol();let sym2=Symbol();//每个用Symbol创建的实例,都是唯一的console.log(...原创 2020-03-12 23:08:35 · 141 阅读 · 0 评论 -
ES6-对象
属性简洁表示:变量和函数作为对象的属性和方法属性名表达式name属性Object.is()Object.assign()属性可枚举__proto__Object.getPropertyOf()Object.setPropertyOf()Object.values()Object.keys()Object.entries()对象扩展运算符Object.getOwnPrope...原创 2020-03-12 19:49:47 · 189 阅读 · 0 评论 -
ES6-字符串的扩展
Unicode:\uxxxx,其中xxxx表示码点javascript支持 \u0000-\uffff 之间,只能识别2个字节,当超出范围的时候,识别不出来(中文是4个字节)codePointAt():处理4个字节存储的字符,返回2个字节的码点String.fromCodePoint():处理4个字节的码点,返回4个字节存储的字符,可以接收多个参数,最终返回合并的值。效果互逆;ES5中...原创 2020-03-11 19:51:32 · 108 阅读 · 0 评论 -
ES6-数组的扩展
扩展运算符:rest参数的逆运算,将数组转换成逗号分割的字符串let arr=[1,2];console.log(...arr);//控制台输出 1 2替换数组的apply用法给函数传递数组function add(x,y){ return x+y;}//ES5let res=add.apply(null,[1,2]);//控制台输出 3//ES6let res=a...原创 2020-03-10 23:42:10 · 436 阅读 · 0 评论 -
ES6-解构赋值
数组解构赋值:获取等号右边的值,赋给等号左边对应位置的变量完全解构let [a,b,c]=[1,2,3];console.log(a,b,c);//控制台输出1 2 3不完全解构:等号左边的模式只匹配右边的一部分let [a,b]=[1,2,3];console.log(a,b);//控制台输出 1 2解构不成功,返回undefinedlet [def,foo]=[];con...原创 2020-03-10 14:03:10 · 204 阅读 · 0 评论 -
ES6-函数扩展
1.箭头函数()=>{}只有一个参数的时候,()可以省只有一个return的时候,{}可以省注:箭头函数没有this,指向函数定义时生效的函数所在,指向定义所在的作用域。因此不能用作构造函数。function f(){ setTimeout(()=>{ console.log('id:'+this.id);},100);}var id=12;f.call({...原创 2020-03-10 00:28:58 · 86 阅读 · 0 评论 -
ES6-变量
var声明变量:变量提升、没有块级作用域、内存泄漏、可重复声明赋值let:声明变量,没有变量提升、暂存性死区、有块级作用域、相同作用域不允许重复声明//块级作用域let a=3;if(true){//暂存性死区开始 console.log(a); let a=2;}//没有变量提升console.log(a);//返回错误let a=5;//不能重复声明let a=6;...原创 2020-03-09 09:48:00 · 124 阅读 · 0 评论