![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
javascript
TE杨
整天遇坑,还是路走得太少了
展开
-
JS事件循环
js事件循环,js为何是单线程的,计算机的同异步,宏任务和微任务原创 2022-06-29 17:17:24 · 334 阅读 · 0 评论 -
关于闭包的理解
闭包原创 2022-06-28 14:43:34 · 230 阅读 · 0 评论 -
js安全数值
之前写过一篇文章聊到js的精度问题。今天同事在开发过程中又遇到了坑。id后端下发的是number类型,出现渲染出错。查了下资料,js的number类型有个最大值(安全值)。即2的53次方,为9007199254740992。如果超过这个值,那么js会出现不精确的问题。这个值为16位。所以,解决方法:后端下发字符串类型。...原创 2021-02-02 09:56:08 · 326 阅读 · 0 评论 -
Generator 函数
在js中,一旦函数开始运行,除非return或者运行结束,否则无法打断函数的执行,但是Generator 函数可以。特征:1、function关键字与函数名之间有一个星号 “*”。2、函数体内使用 yield 表达式,定义不同的内部状态 (可以有多个yield)。3、直接调用 Generator函数并不会执行,也不会返回运行结果,而是返回一个遍历器对象(Iterator Object)。4、依次调用遍历器对象的next方法,遍历 Generator函数内部的每一个状态。function* stu原创 2021-02-01 23:59:53 · 118 阅读 · 2 评论 -
forEach、map、filter、find、sort、some等会改变原始数组吗?
当数组中元素是值类型,map不会改变原数组;当是引用类型,则可以改变原数组。https://juejin.cn/post/6844903817549447182原创 2020-12-24 10:09:10 · 1705 阅读 · 0 评论 -
ios不支持js时间戳问题以及解决方法
问题: 在js中使用时间戳方法转换报错。原因: ios的时间要使用2020/11/26 18:00格式,也就是把 “-” 改成 “/” 。解决方法: new Date(‘2020/11/26 18:00’.replace(/-/g, ‘/’)).getTime()。原创 2020-11-26 11:08:35 · 543 阅读 · 0 评论 -
query路由传参如何传递对象
1、JSON转译//传参this.$router.push({name:'Wapsort',query:{classification: JSON.stringify(item)}},() => {},err => {});//接收JSON.parse(this.$route.query.classification)原创 2020-10-24 18:29:50 · 3160 阅读 · 0 评论 -
vue路由传参刷新页面数据丢失问题
问题:在写项目的时候,使用params路由传参,刷新页面,结果参数报错消失。原因:使用params传参的时候,当你跳转到子页面,如果你刷新页面,代表就不是从父级页面跳转过来的,参数当然会消失。问题解决:1、使用query传参数,因为query是在链接之中携带的参数,相当于get请求,你即便刷新,链接也依旧携带了参数。2、存储于vuex之中,不过一般数据量不是太大,或者不是垮多个页面,亦或者其他方面的特殊需求,不建议使用。3、使用sessionStorage、localStorage,不建议使用原创 2020-10-24 18:17:53 · 938 阅读 · 0 评论 -
js中的浅拷贝与深拷贝
function palindrome(str) { let reg = /[\W_]/g; let str2 = str.replace(reg,"").toUpperCase(); let arr = str2.split(""); let newArr = [...arr]; if(arr.reverse().join("") === newArr.join("")) { return true; } else { return false; } //原创 2020-09-07 00:32:02 · 106 阅读 · 0 评论 -
记录一道算法题
在这道题目中,我们需要写一个函数,参数为一个正整数num。它的作用是计算斐波那契数列中,小于或等于num的奇数之和。斐波那契数列中,第一和第二个数字都是 1,后面的每个数字由之前两数相加得出。斐波那契数列的前六个数字分别为:1、1、2、3、5、8。比如,sumFibs(10)应该返回10。因为斐波那契数列中,比10小的数字只有 1、1、3、5。function sumFibs(n) { var arr = [1,1]; var n1 = 1,sum; for(var原创 2020-09-04 00:34:11 · 169 阅读 · 0 评论 -
JS伪数组转化为真数组
1、Array.protype.slice.call(obj)slice会把通过索引位置获取新的数组,该方法不会修改原数组,只是返回一个新的子数组.call会把this的指向改为传进去的obj2、Array.form(obj)3、扩展运算符原创 2020-08-26 11:39:53 · 149 阅读 · 0 评论 -
JS函数的内置对象arguments
js函数中有个内置对象arguments,argument 对象包含了函数调用的参数数组。arguments的数据类型://argumentsfunction sum(x,y) { console.log(Object.prototype.toString.call(arguments)); //[object Arguments] console.log(Array.isArray(arguments)); //false console.log(arguments.lengt...原创 2020-08-26 10:52:15 · 284 阅读 · 0 评论 -
关于return返回值++后执行问题
原创 2020-08-22 16:49:11 · 372 阅读 · 0 评论 -
关于js空数组是true还是false的问题
在js中,因为数组是object,所以即便数组中没有值,if判断的话也会被转化为true.var arr = [];if(arr) { console.log(true); //值为true}else { console.log(false);}所以正确的判断是var arr = [];if(arr.length) { console.log(true);}else { console.log(false); //false}但是,在和布尔值判断的时候确是不一样的,因原创 2020-08-19 16:17:55 · 3740 阅读 · 2 评论 -
解决谷歌浏览器中touchstart不管用的方法
原因:https://zhuanlan.zhihu.com/p/24385322解决方法:document.addEventListener('touchstart', function(event) { // 判断默认行为是否可以被禁用 if (event.cancelable) { // 判断默认行为是否已经被禁用 if (!event.de...原创 2020-04-28 22:29:06 · 2829 阅读 · 0 评论 -
js中的防抖和节流策略
何为防抖,快速输入的时候,我们只针对最后一次进行触发。1、借助事件队列和setTimeout定时器来实现:2、借助ajax中的axios来实现 watch : { message(newVal){ var that = this; // 取消上一次请求 this.cancelReque...原创 2020-04-05 22:21:48 · 137 阅读 · 0 评论 -
es6之展开运算符(做记录,后续补充)
前学后忘,什么东西一旦长时间不用就忘了。es6展开运算符,简言之就是把数组展开转换成用逗号隔开的参数序列原创 2020-03-15 22:51:31 · 137 阅读 · 0 评论 -
!与!!
!的意思1、!可将变量转换成boolean类型,null、undefined和空字符串取反都为false,其余都为true。!!的意思2、!!表示取反之后再取反,所以也就是直接将值转换为布尔值。...原创 2020-02-25 22:57:51 · 230 阅读 · 0 评论 -
关于js原型和原型链
每一个函数都有原型,就是prototype属性。每一个对象在创建的时候,就会关联另一个对象,这个对象就是prototype属性。所以每一个对象在被创建的时候,就会拥有一些属性,这些属性是原型所赋予的。关于原型链每一个js对象都有一个属性,叫proto,这个属性会指向该对象原型。每一个原型都会有一个constructor属性指向关联的构造函数,实例原型指向构造函数,而构造函数又通过protot...原创 2019-12-07 18:46:48 · 64 阅读 · 0 评论 -
原始数据类型和引用数据类型的区别
讲之前,先了解一下栈和堆。栈为自动分配的内存空间,它由系统自动释放;而堆则是动态分配的内存,大小也不一定会自动释放基本数据类型,上一章中说过,此处不再提,基本数据类型可以直接赋值访问,保存在栈中。引用数据类型,数据保存在堆中,放在栈中的只是一个引用地址,引用地址指向保存在堆中的数据,可以根据引用地址访问堆中的数据。...原创 2019-12-07 15:06:33 · 578 阅读 · 0 评论 -
JavaScript 里有哪些数据类型?什么是undefined,null?
js的基本数据类型:number,string,null,undefined,boolean,symboljs的引用数据类型:object,function,Arrayundefined和null的区别undefined表示未定义或者不存在null表示无值,一个空对象指针定义变量准备之后用来保存对象,就可初始化值为null,用来存字符串,初始化值为”“,以此类推。var a = null...原创 2019-12-07 14:52:07 · 227 阅读 · 0 评论