ES6特性
等待戈多啊
我们在等什么?
展开
-
深拷贝 浅拷贝
浅拷贝:只拷贝一层,更深层次的对象只拷贝引用(即对象的地址)。缺点:由于浅拷贝拷贝的是对象的地址,因此 当你将一个对象A拷贝给对象B,这个时候修改对象B中的深层次的对象属性时,对象A的该属性也会被修改。当然,缺点和优点在不同的场景下 ,是会发生转变的//es6提供的浅拷贝语法糖//target:你要拷贝的目标 sources被拷贝的对象Object.assgin(target,...sources)//js实现var obj={ id:1, name:"张三", act:{ si原创 2021-06-01 17:13:59 · 126 阅读 · 0 评论 -
js中的构造函数和原型
构造函数 new在执行过程中:1.在内存中创建一个新对象2.将this指向新对象3.执行构造函数里面的代码,给对象添加属性和方法。4.返回这个新对象(因此构造函数中不需要return)静态成员和实例成员的区别静态成员:在构造函数本身添加的属性实例成员:只能通过实例化的对象来访问原型对象的作用由于构造函数在实例化过程中,构造函数中的方法也会被实例化。而方法的实例化会开辟新的内存空间。如果同一个构造函数被执行多次,就会为同一个方法多次开辟内存空间,从而造成资源的浪费。原型对象就是来解决这原创 2021-05-24 14:35:43 · 96 阅读 · 0 评论 -
箭头函数中的this和function中的this的区别
箭头函数中的this和function中的this的区别结论:箭头函数中的this一般情况下,会一层一层的向外层作用域中查找,知道查到为止。而function中都是指向window const obj={ a(){ setTimeout(function(){ console.log(this)//window对象 },1000) setTimeout(()=>{ console.log(this)//obj对象 },1000) }}下面还有一题: cons原创 2021-03-16 12:11:42 · 1319 阅读 · 0 评论 -
防抖和节流
防抖:在响应时间内,重复点击后,响应时间开始重新计时应用场景:搜索框中输入完两秒之后,开始搜索//在响应时间之后执行,延迟执行//func响应时间之后执行的方法,wait响应时长function debounce(func,wait){ let timeout;//定时器 return function(){ //如果定时器存在则清除定时器 if(timeout) clearTimeout(timeout); timeout=setTimeout(function(){ fun原创 2021-01-04 17:22:42 · 112 阅读 · 0 评论 -
简单、快速的js数组操作 es6 filter、map、reduce运用
var arr=[2,3,2,5,8,9,3,1,2,3,3,5,2,9,2];var arr2=[...new Set(arr)];console.log(arr2);[2,3,5,8,9,1]这里利用了es6中Set中的成员都是唯一不重复的特性扩展运算符( spread )是三个点(…)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。...原创 2021-01-04 11:02:48 · 370 阅读 · 0 评论 -
let const var 区别详解
let和var区别一、不存在变量提升首先先要了解什么叫变量提升?就是变量声明提前var具有这个属性,下面有个小例子;console.log(a)var a='a'如果按照编译顺序看,代码运行结果应该是报错 变量未定义而实际结果是变量为空即:undefined然而let就会会严格执行运行顺序console.log(a)let a='a'结果为报错Uncaught SyntaxError: Identifier ‘a’ has already been declared二、同一个原创 2020-12-24 16:36:41 · 377 阅读 · 1 评论 -
ES6新特性
let和const关键字:let关键字定义块作用域变量,const定义常量字符串模版:${}箭头函数:左边是参数集合,右边是函数体原生promise对象:将promise对象纳入规范symbol:增加symbol数据类型ES module: 引用ES module 模块化规范… : 拓展运算符,用来代替argument对象变量结构赋值async函数set和map函数for…of循环:用来遍历实现迭代器接口的数据class...原创 2020-12-24 11:17:03 · 76 阅读 · 0 评论