js
relax_go
这个作者很懒,什么都没留下…
展开
-
数组forEach直接赋值不生效
JS forEach将数组内元素替换的问题let arr = [ { name: '1', id: '1' },{ name: '2', id: '2' },{ name: '3', id: '3' }]arr.forEach(item=>{ if(item.name==='2'){ item= {name: '4'} }})console.log(arr)[[object Object] { id: "1原创 2021-09-10 10:02:35 · 3410 阅读 · 3 评论 -
Object.assign()是深克隆还是浅克隆
上代码:对象全为基本数据类型 let aObj = { c: 5 } let bObj = { a: { ac: 2 } } let cObj = { b: 1 } let newObj = Object.assign(aObj, bObj, cObj) console.log(newObj) cObj.b = 4 console.log(newObj)输出没有改变对像中的属性存在对象时let aObj = { c: 5 } let bObj = { a: { a原创 2021-08-31 11:35:38 · 270 阅读 · 0 评论 -
苹果手机日期显示nan问题
var newDate = new Date(“2020-12-28 15:00:00”)这种获取的时间在安卓手机上显示是正常的,在苹果手机上显示NaNvar newDate = new Date(“2020/12/28 15:00:00”)这种获取的时间在安卓和苹果手机上都显示正常转换时间格式 .replace(/-/g, “/”)var newDate = new Date(“2020/12/28 15:00:00”.replace(/-/g, “/”))...原创 2021-01-06 14:38:11 · 1172 阅读 · 1 评论 -
(JS)引用数据类型和基本类型,和引用数据类型的深克隆赋值
简要基本数据类型数据是存在栈中,赋值时值赋给另外一个变量,两个值完全独立let a = 1let b = a引用数据类型数据是存在堆中,引用是存在于栈中,赋值时是把引用赋给另外一个变量,是同一个数据,改变其中一个变量的值,另外一个变量跟着改变let obj = { a: 1 }let obj1 = objobj.a = 2 // obj1也跟着改变2.应用方法也可以直接改变let target1 = [], target2 = []function test (arr1, .原创 2020-11-24 12:59:16 · 246 阅读 · 1 评论 -
惰性函数
只需要第一次判断条件就能确定,后面再多次调用时就不需要重新判断条件了。 function addEvent(type, element, fun) { if (window.addEventListener) { //DOM2级 addEvent = function (type, element, fun) { element.addEventListener(type, fun, false); // false为冒泡,true为捕获 }; } else if (w...原创 2020-09-04 17:05:19 · 154 阅读 · 0 评论 -
节流函数构建及传参
一.什么是节流函数节流函数:不管事件的触发频率有多高,只会间隔设定的时间执行一次目标函数。二.为什么使用有些场合只需要开始执行一次,后面的没必要了,为了保证性能与体验,采用节流代码: // 产出需要节流的方法 function throttle (func, delay = 500) { let isFlag = false return function(...args) { if (isFlag) return func.apply(this, ar原创 2020-09-04 16:36:52 · 1328 阅读 · 0 评论 -
防抖函数debounce的构建及传参
防抖函数的构建,以及传参使用 // 防抖函数 function debounce(delay, fun) { let time = null return function () { let self = this if (time) clearTimeout(time) time = setTimeout(() => { fun.apply(self, a原创 2020-07-18 13:47:04 · 5859 阅读 · 1 评论