
Js
文章平均质量分 56
猫猫的叮当
这个作者很懒,什么都没留下…
展开
-
Vue实现数据双向绑定代码
Vue自己实现数据双向绑定原创 2022-08-30 17:47:54 · 486 阅读 · 0 评论 -
JS手动实现一个new操作符
创建了一个空对象,并将对象原型指向构造函数的prototype,执行构造函数后返回这个对象。b.链接到原型(将构造函数的prototype赋值给新对象的_proto_)c.绑定this(构造函数中的this指向新对象并且调用构造函数)1.首先来说一说new操作符都做了哪些事情呢?...原创 2022-08-13 23:42:03 · 231 阅读 · 0 评论 -
一个例子看懂浏览器事件循环
1.async1里面的代码相当于同步,但是遇到await就会造成阻塞,这也是await必须用在async中的原因。他会去执行async2里面的,然后执行外面的同步代码。也就是说,await只会阻塞当前async方法内的代码,不会影响外部代码的执行。2.执行顺序:同步>process.nextTick>微任务>宏任务>setImmediate。微任务:promise.then/catch(promise里面的是同步)或者换种说法,可以把当前方法内await后面的代码看成微任务。...原创 2022-08-13 22:44:37 · 102 阅读 · 0 评论 -
防抖和节流
防抖和节流原创 2022-08-13 13:40:19 · 190 阅读 · 0 评论 -
JavaScript面试题[‘1‘, ‘2‘, ‘3‘].map(parseInt)
JavaScript面试题[1,2,3].map(parseInt)原创 2022-08-13 13:08:42 · 240 阅读 · 0 评论 -
修改未正确放入沙盒造成苹果兼容性问题
ios兼容性问题原创 2022-07-25 12:05:41 · 407 阅读 · 0 评论 -
浏览器的垃圾回收机制
浏览器的垃圾回收机制原创 2022-06-23 16:29:56 · 247 阅读 · 0 评论 -
浏览器事件循环
浏览器事件循环原创 2022-06-23 12:02:42 · 2126 阅读 · 0 评论 -
兼容性问题:安卓正常,ios报错invalid group specifier name
苹果安卓正则表达式兼容性问题原创 2022-06-17 11:49:46 · 643 阅读 · 0 评论 -
js中forEach、filter、map、find、findIndex的区别
首先forEach、filter、map、find、findIndex都是用来遍历数组的,那么他们的区别是什么?let stu=[ {name:'lisa',age:18}, {name:'lili',age:19}, {name:'anla',age:20}, {name:'alex',age:21}, {name:'tom',age:22},]1.forEach:遍历数组全部元素,利用回调函数对数组进行操作,改变原数组。return用来控制循环是否跳出当前循环。stu.forEac原创 2022-04-24 22:01:02 · 1040 阅读 · 0 评论 -
时间筛选组件;两种方法,一种转换毫秒,一种按月
样式如下封装的一个组件,这个组件需要引入一个dataTime原创 2022-04-18 17:31:37 · 491 阅读 · 0 评论 -
js中遍历对象的方法
1.Object.keys(obj) 返回对象属性组成的数组2.Object.values(obj) 返回的是属性值组成的数组3.Object.entries(obj) 返回键值对所对应的数组4.Object.getOwnPropertyNames(obj) //与1类似,返回也相同5.for … in for(let k in obj){//这里遍历出的k是属性名}只能遍历到自身的属性和自身继承的可枚举的属性值和方法,不含symbol6.forEach(基于key、values、entr原创 2022-03-21 23:25:21 · 890 阅读 · 0 评论 -
promise入门学习笔记
这里学习分为四部分,分别为:1.promise介绍与基本使用 2.promiseAPI 3.promise关键问题 4.async与await一、promise介绍与基本使用1.promise是js进行异步编程的新解决方法语法上来说,他就是一个构造函数功能上来说:promise对象用来封装一个异步操作并可以获取其成功/失败的结果值2.异步编程的一些使用地方fs文件操作;数据库操作;AJAX;定时器3.为什么使用promise支持链式调用,可以解决回调地狱问题(回调函数的嵌套)。指定原创 2022-03-21 20:48:20 · 1085 阅读 · 0 评论 -
截取路径url的参数并将参数放进一个对象里
方法一:var obj={}var url1='wwww.baidu.com?min-deposit=10000&prod_name=新季报'if(url1.indexOf("?") !=-1){ var str=url1.substring(url1.indexOf("?")+1); var arr=str.split("&");原创 2022-03-20 15:37:18 · 266 阅读 · 0 评论 -
JavaScript匿名函数(自调用函数)
首先看一下普通函数和匿名函数的区别//普通函数function sum(a,b){ return a+b; console.log("我是一个普通函数") }//匿名函数,不能单独使用function (a,b){ return a+b; console.log("我是一个匿名函数") }没错,匿名函数简单来说就是普通函数去掉名字,但是他不能单独定义与使用,下面是匿名函数的一些使用场景:用于函数表达式、作为返回值、用于定义对象方法、作为回调函数、用于立即执行函数、用于DOM元素注原创 2022-03-01 22:08:26 · 4294 阅读 · 1 评论 -
在JavaScript中时间戳
一、JavaScript 时间转为时间戳1.Date.now()用Date.now()可以获得当前的时间戳[ ] let timestamp= Math.round(new Date() / 1000) //这个只精确到了秒var timestamp=new Date().getTime(); //这个精确到了毫秒2.判断超出多久的时间const now = Date.now()const d = new Date(time) //time为时间戳const secDiff =原创 2022-02-18 19:15:43 · 32430 阅读 · 0 评论 -
记录h5表单离开页面时数据储存及取出的问题
h5表单页面,跳转到指定页面时,表单页面数据储存:1.采用keepAlive坑太多,数据偶尔丢失;2.可以使用vuex:将表单页面数据存入store,回来时再将所需数据取出。表单页面: // 路由离开的时候,判断跳转去的页面路由是否需要缓存 beforeRouteLeave(to, from, next) { if(to.name === "vote-application.vote.avatarPage") { let data = { formData:this.原创 2022-02-16 16:43:44 · 500 阅读 · 0 评论 -
控制台报错:Invalid character ‘\u201c‘
在mac使用safari浏览器进行控制台输出的时候报错:Invalid character ‘\u201c’问题原因就是“”,这个符号是中文符号,可能看起来不太明显,下满是修改后原创 2022-01-10 17:12:22 · 4655 阅读 · 0 评论 -
Object.keys/values/entries/
Object.keys,values,entries1.Object.keys------返回一个包含该对象所有键的数组2.Object.values------返回一个包含该对象所有值的数组3.Objectentries------返回一个包含该对象所有[键,值]键值对的数组????????和map 的区别a.调用语法:map.keys. Object.keys(注意不是obj.keys)b.返回值:map返回的是可迭代的对象,而Object返回的是真正的数组let user原创 2022-01-09 18:01:36 · 171 阅读 · 0 评论 -
Map 和Set(映射和集合)
可迭代对象是数组的泛化,这个概念就是说任何对象都可以被定制为在 for …of 循环中使用的对象数组是可迭代的,很多其他内建对象也都是可迭代的,比如字符串。(内建对象包括:string、da te、Array对象、Math、Functions全局函数)1.Symbol.iterator通过创建一个对象,我们就可以轻松掌握可迭代的概念。比如,我们有一个数组,它并不是数组,比如一个range 对象,它代表你一个数字区间。...原创 2021-12-21 14:56:07 · 1853 阅读 · 0 评论 -
前端进阶需要学的东西
学习的几个阶段一、网页制作基础教程之网页的基本结构二、弄清楚浏览器是怎么展现网页的,了解网页的生命周期三、熟练使用客户端调试工具四、积累服务器端语言开发经验,能够解决浏览器兼容性问题下面是阿里的的几个阶段首先就是HTML/CSS3 以及工具部分:vscode开发工具使用、markdown文档工具使用、浏览器平台环境、标签基础、DTD与META语义化、选择器、权重与优先级、匹配规则、浮动与清除、BFC、类名组合规则、SEO前端技巧、定位、叠加技巧、伪类、伪元素、盒子模型、代码规范、性能优化、渲原创 2021-12-14 15:09:02 · 2801 阅读 · 2 评论 -
js的map方法
简介Map 是JavaScript中的数据结构,它允许存储【键,值】对,其中任何值都可以用作键或值;Map集合中的键和值可以是任何类型,并且如果使用集合中已存在的键将值添加到Map集合中,新值将替换旧值。1.map()方法返回一个新数组,数组中的元素为原始数组调用函数处理后的值,并且按照原始数组元素调用函数处理后的值⚠️:map()不会对空数组进行检测,并且不会改变原数组传参:currentValue:必传。当前元素值index:可选。当前元素索引值arr:可选。当前元素属于的数组对象示例:原创 2021-12-09 11:56:50 · 162448 阅读 · 2 评论 -
作用域、作用域链、闭包的面试问题
一、作用域作用域指的是一个变量和函数的作用范围,在ES6中,只有全局作用域和局部作用域,但是没有块级作用域,并且局部变量的优先级高于全局变量。1.变量提升这里涉及一个知识点就是允许var在变量声明前使用,不会像let、const一样报错,如下console.log(a1); //undefinedlet a1="helloworld"看完上面那么我们接着看作用域中的变量提升var scope="global";function scopeTest(){ console原创 2021-11-18 19:29:28 · 914 阅读 · 0 评论 -
透彻看懂apply()和call()方法,以及一些妙用
一、定义call 和apply 都是Function对象的原型方法,他们是把特定的函数当做一个方法绑定到指定的对象上进行调用。这两个方法功能用法相同,区别是他们传的参数不同,其中apply()是用数组的方式进行传参,call()则用数值的方式进行传参。1.Function.apply(obj,args)obj:这是一个对象,将代替Function里面的this对象args:这是一个数组,他将作为参数传给Function2.Function.call(obj,value1,value2…)obj:原创 2021-11-18 15:21:39 · 854 阅读 · 0 评论 -
前端JavaScript基础面试题(每天更新两道)
1.介绍JavaScript的基本数据类型一共是八种:基本类型(原始):String、Number 、Boolean 、null 、undefined、bigint(谷歌版本中出现,有些地方并不承认)、symbol ;引用类型:Objectobject:是所有对象的父对象,像Array、Date、Function等都是其子对象.2.JavaScript有几种类型的值,内存图是什么样的?上面的数据类型这里还涉及到的一个问题存储,栈是先进后出,而堆是优先队列,按优先级来排序,二叉树就是堆的一个实原创 2021-11-16 15:29:55 · 1560 阅读 · 2 评论 -
js 数据类型之字符串
JavaScript 中的字符串使用的是 UTF-16 编码。一、引号字符串可以包含在单引号、双引号或反引号(“” ‘’ ``)中,那么接下来就说一下他们的区别:1.单引号和双引号基本相同,但是反引号允许我们通过 ${……}将任何表达式嵌入到字符串中:function sum(a, b) { return a + b;}alert(`1 + 2 = ${sum(1, 2)}.`); // 1 + 2 = 3.并且,反引号允许字符串跨行,单引号和双引号跨行就会报错二、原创 2021-11-12 18:29:43 · 948 阅读 · 0 评论 -
js数据类型之数字类型
1.科学计数法的写法直接举例子可能用法更明确一些1000000=1e67.3e9=73,0000,0000. //73亿 **总结一下上面用法就是这种写法就等于 “e”把数字乘以1后面跟着给定数量的 0 的数字** 同上看一些负数用法: 0.000001=1e-6...原创 2021-11-09 16:09:14 · 1390 阅读 · 0 评论 -
可选链 ?.
一、可选链三种语法形式 1.obj ?.prop. --------如果obj 存在则返回 obj.prop ,否则返回 undefined。 2.obj ?.[prop] -------如果存在则返回obj[prop] ,否则返回undefined。 3.obj.method?.()------如果obj.method 存在则调用obj.method(),否则返回undefined。 正如我们所看到的,这些语法形式用起来都很简单直接,检查左边部分是否为 null/undefined,如果不是则继续原创 2021-10-27 11:56:55 · 2323 阅读 · 0 评论 -
正则表达式前端js,银行卡号/身份证/姓名号脱敏,匹配两个字符串
方法1保留卡号的前4位和后4位,中间的都变成*号> '6212268202014638888'.replace(/(?<=\d{4})\d+(?=\d{4})/,"****"); > //6212****8888原创 2021-10-14 17:27:24 · 5438 阅读 · 0 评论 -
JS原型/继承(原型链)透彻学明白
一、原型继承1.原型:[[Prototype]]当我们从object中 读取一个缺失的属性时,JavaScript会自动从原型中获取该属性,我们称之为“原型继承”。 属性 [[Prototype]] 是内部并且隐藏的,有很多设置它的方法,这里先使用__proto__。let animal = { eats: true }; let rabbit = { jumps: true }; rabbit.__proto__ = animal; // (*)...原创 2021-10-11 18:14:45 · 596 阅读 · 0 评论 -
JS基础知识第十四篇 JS特性
1.变量变量声明let const(不变的,不能够被改变) var(旧式的,稍后会看到)变量名的组成字母和数字,但是第一个字符不能是数字 字符$ 和 _ 是允许的,用法同字母 非拉丁字母和象形文字也是允许的,但是通常不会使用八种数据类型number----可以是浮点数,也可以是整数 bigint----可以任意长度的整数 String --- 字符串类型 boolean ---逻辑值 null --- 具有单个值 null 的类型,表示空或者不存在 undef...原创 2021-09-28 11:09:42 · 153 阅读 · 1 评论 -
JS基础知识第十三篇 函数以及函数表达式
一、函数1.函数声明function name(parameters) {...body... }新函数就可以通过名字调用name()比如:function showMessage() { alert( 'Hello everyone!' ); }showMessage(); showMessage();2.局部变量在函数中声明的变量即局部变量,局部变量只在该函数内部可见。3.外部变量函数也可以访问外部变...原创 2021-09-26 17:36:41 · 198 阅读 · 1 评论 -
Js第12篇,switch语句
switch语句可以替代多个 if 判断语法switch语句至少一个 case 代码块和一个可选的default 代码块比较 x 值与第一个case(也就是value1) 是否严格相等,然后比较第二个case (value2),一次类推。 如果相等,switch 语句就执行相应case 下的代码块,直到遇到最靠近的 break语句(或者直到switch语句末尾) 如果没有复合的case,则执行default 代码块(如果default存在)比如这里的switch 从第一个c..原创 2021-09-14 19:05:53 · 176 阅读 · 0 评论 -
Js基础知识第十一篇 循环while和for
一、while循环1.语法:while循环语法当condition为真时,执行循环体的代码,例如:循环体的单次执行称为一次迭代,上面例子执行了三次迭代任何表达式或变量都可以是循环条件,而不仅仅是比。在while中的循环条件会被计算,计算结果为布尔值。 比如while(i!=0)可简写为 while(i)单行循环体不需要大括号,如果循环体只有一条语句,则可以省略大括号二、do ... while循环使用 do ... while 语法可以将条件检...原创 2021-09-13 19:02:14 · 470 阅读 · 0 评论 -
Js基础知识第十篇 空值合并运算符 ‘ ??‘
我们将值既不是null也不是underfined的表达式称为“已定义的”空值合并运算符的写法为两个问号 ??a ?? b 的结果是:如果a是已定义的,则结果为 a , 如果 a 不是已定义的,则结果为 b总结出来就是,如果第一个参数不是 null/underfined ,则 ?? 返回第一个参数,否则返回第二个参数。1.我们可以用 ?? 来为未定义的变量提供一个默认值像这里,如果user是未定义的,那么我们将显示 Anonymous如果有赋值,则显示所附的值2...原创 2021-09-03 10:03:56 · 506 阅读 · 0 评论 -
Js基础知识第九篇 逻辑运算符(与或非)
JavaScript有三个逻辑运算符: || (或),&&(与),!(非)一、|| (或)总结起来就是有真就真,全假才假。只要有一个为真结果就是真,两个都是假结果才假。如果操作符不是布尔值,那么他将被转换为布尔值来参与运算,例如数字作为true处理 ,数字0作为false或值运算寻找第一个真值result = value1 || value2 || value3;执行步骤:a.从左到右依次计算操作数b.处理每一个操作数时,都将其转换为布尔值。如果是t..原创 2021-09-02 09:09:48 · 11445 阅读 · 0 评论 -
Js基础知识第八篇 三目运算以及多个问号?
1.三目运算计算条件结果:如果结果为真,则返回value1,否则返回value2此时 运算符 ? 可以称为三元运算符,因为该运算符中有三个操作数eg:let age=22let accessAllowed = (age > 18) ? true :false ; //true2.多个 ‘?’使用一系列问号?运算符可以返回一个取决于多个条件的值。这里的实现大多我们是通过if....else 来实现的,下面是if/else用...原创 2021-09-01 16:57:15 · 1013 阅读 · 0 评论 -
前端/Js 假值,false等价于
数字 0 ,空字符串“”、null、underfined、NaN、都等价于 false ,因为他们都被称之为“假值”,而其他的值都会被转换为true原创 2021-09-01 16:10:41 · 298 阅读 · 0 评论 -
Js基础知识第六篇 javaScript/前端的数据类型转换
类型转换大多数,运算符和函数会自动将赋予它们的值转换为正确的类型比如,alert在显示值时会都转换为字符串类型,如果有运算符的时候会转换为数字1.字符串转换 String(value) 转换成字符串时,会将false转换为“false”,null转换为“null”2.数字型转换 Number(value) 转换规则如下请注意这里的null 和 underfined 是不同的,null变为数字0;underfined 变为NaN......原创 2021-08-17 21:23:54 · 413 阅读 · 0 评论 -
Js基础知识第五篇 用户与浏览器的交互:alert、prompt、confirm
1.alert这个应该是大家最熟悉的一种,页面弹窗,当窗口弹出的时候用户不能与其他界面进行交互,直到点击确定按钮alert("hello")2.promptresult=prompt(title,[default])该函数接收两个参数,title是页面显示的文本消息,default是输入框的默认值,可以没有result用来获取界面输入的值,如果点击取消就返回一个nulleg:let name=prompt("请输入您的名字","张三")3.confirm...原创 2021-08-17 20:50:25 · 419 阅读 · 0 评论