javaScript
文章平均质量分 85
LYFlied
这个作者很懒,什么都没留下…
展开
-
JS中浅拷贝和深拷贝的区别以及几种实现方式
深拷贝和浅拷贝浅拷贝和赋值深拷贝1. 递归实现2. 通过JSON对象实现深拷贝3. 通过jQuery的extend方法实现深拷贝4. Object.assign()拷贝5. lodash函数库实现深拷贝原创 2021-04-17 16:08:53 · 672 阅读 · 2 评论 -
前端setInterval和setTimeout计时误差问题分析&&解决方案
setInterval指定的是“开始执行”之间的间隔,并不考虑每次任务执行本身所消耗的时间。因此实际上,两次执行之间的间隔会小于指定的时间。比如,setInterval指定每 100ms 执行一次,每次执行需要 5ms,那么第一次执行结束后95毫秒,第二次执行就会开始。如果某次执行耗时特别长,比如需要105毫秒,那么它结束后,下一次执行就会立即开始。为了确保两次执行之间有固定的间隔,可以不用setInterval,而是每次执行结束后,使用setTimeout指定下一次执行的具体时间。原创 2021-04-02 15:16:26 · 7737 阅读 · 14 评论 -
前端面试系列-JavaScript-数据结构map和set
JavaScript-数据结构map和setmap1.特性1.1键值对,键可以是对象。1.2.Map可以接受数组作为参数(批量插入)2.属性和方法3.遍历4. 和其它结构的互转二、set1.特性2.属性和方法3.遍历4.和其他结构互转5.应用多数组的合并去重原创 2021-03-25 17:00:21 · 626 阅读 · 6 评论 -
前端面试系列-JavaScript-箭头函数(与普通函数的区别)
文章目录一、箭头函数二、与普通函数的区别1.箭头函数不会创建自己的this2.箭头函数继承而来的this指向永远不变(重要)3.call()、apply()、bind()无法改变箭头函数中this的指向4.箭头函数不绑定arguments,取而代之用rest参数…解决5.不能使用new操作符(作为构造函数使用)6.不能使用原型属性7.不能简单返回对象字面量8.箭头函数不能换行一、箭头函数// 箭头函数let fun = (name) => { // 函数体 return `Hel原创 2021-03-25 15:06:14 · 5102 阅读 · 15 评论 -
前端面试系列-JavaScript-for ... in和for...of
for ... in、for...of区别- for in 一般常用来遍历对象或json,不适用于遍历数组。- for of数组对象都可以遍历,遍历对象需要通过和Object.keys()- for in循环出的是key,for of循环出的是valuefor...of 就是用for实现的。性能for > for...of > for...infor > for...of > for...infor...in需要穷举对象的所有属性,包括自定义的添加的属性也能遍历到且for...in的key原创 2021-03-25 13:30:26 · 1413 阅读 · 2 评论 -
前端面试系列-JavaScript-精度问题(0.1+0.2!==0.3、大数相加)
一、双精度浮点数二、十进制小数转二进制小数精度丢失三、关于0.1+0.2 !== 0.3的问题四、大数相加1.S 中整数的安全范围2.实现大数相加原创 2021-03-25 11:17:07 · 1419 阅读 · 2 评论 -
前端面试系列-JavaScript-理解generator及实现原理
- generator:可以将生成器视为可以暂停和恢复的进程(代码段),代码在执行的过程中可以主要交出控制权- genearator 语法: function* 是一个新的关键字用于生成器二、使用案例1.给普通对象添加遍历器2.将ajax请求转成类似的 let a = ajax()的同步赋值形式3.实现状态机4.实现轮询5.异步操作的同步化表达(处理异步操作,改写回调函数)6.通过Generator函数部署Ajax操作7.通过 Generator 函数逐行读取文本文件。三、实现原理原创 2021-03-24 21:50:07 · 2037 阅读 · 1 评论 -
前端面试系列-JavaScript-理解async/await
如果 async 函数没有返回值,它会返回 Promise.resolve(undefined)**一、async,await1.作用2.await 在等什么3.await 等到了要等的,然后呢二、async、await串行并行处理1.串行2.并行三、async、await错误处理四、优点原创 2021-03-24 21:13:08 · 939 阅读 · 0 评论 -
前端面试系列-JavaScript-Promise(含手写代码)
前端面试系列-JavaScript-Promise(含手写代码)promise解决回调炼狱链式操作的用法reject的用法catch的用法all的用法应用场景场景race的用法Promsie 与事件循环手写代码Promise,原创 2021-03-24 18:04:10 · 468 阅读 · 0 评论 -
前端面试系列-JavaScript-继承的八种实现方案以及优缺点
前端面试系列-JavaScript-继承的八种实现方案以及优缺点1.原型链继承2.构造函数式继承3.组合继承(常用)4.原型式继承5.寄生式继承6.寄生组合式继承7.Object.assign8. ES6类Extends原创 2021-03-24 15:08:28 · 395 阅读 · 2 评论 -
前端面试系列-JavaScript-call、applay、bind的区别及代码实现
call、applay、bind的区别及代码实现call 和 apply 的主要作用,是改变对象的执行上下文,并且是立即执行的。它们在参数上的写法略有区别;bind 也能改变对象的执行上下文,它与 call 和 apply 不同的是,返回值是一个函数,并且需要稍后再调用一下,才会执行。一、callcall模拟实现二、applayapplay模拟实现三、bindbind模拟实现应用场景1.对象的继承2.借用方法3.Math.max||Math.min4.数组合并原创 2021-03-24 12:47:01 · 3334 阅读 · 7 评论 -
前端面试系列-JavaScript-防抖与节流(用节流优化防抖)
前端面试系列-JavaScript-防抖与节流(用节流优化防抖)时间戳、计时器等方式实现。- **函数防抖**:将几次操作合并为一此操作进行。原理是维护一个计时器,规定在delay时间后触发函数,但是在delay时间内再次触发的话,就会取消之前的计时器而重新设置。这样一来,只有最后一次操作能被触发。- **函数节流**:使得一定时间内只触发一次函数。原理是通过判断是否到达一定时间来触发函数。原创 2021-03-24 01:03:33 · 2856 阅读 · 17 评论 -
前端面试系列-JavaScript-this指向问题(附面试例题)
对this的产生原因分析和了解默认绑定显式绑定new绑定this指向面试例题从ECMAScript规范解读this默认绑定 < 隐式绑定 < 显式绑定 < new 绑定原创 2021-03-23 19:02:34 · 1535 阅读 · 0 评论 -
前端面试系列-JavaScript-变量提升、预编译(附面试题)
前端面试系列-JavaScript-变量提升、预编译(Global Object、Activation Object)全局作用域局部作用域前端面试题函数声明整体提升var、let、const、class变量声明提升原创 2021-03-22 16:53:01 · 3451 阅读 · 16 评论 -
前端面试系列-JavaScript作用域和作用域链
前端面试系列-JavaScript作用域和作用域链全局作用域,函数作用域,块级作用域原创 2021-03-22 13:30:15 · 4228 阅读 · 13 评论 -
前端面试系列-typeof 和instanceof 的实现原理(手写代码)
前端面试系列-typeof 和instanceof 的实现原理,利用typeof判断数据类型手写instanceof实现代码附原型链相关知识原创 2021-03-21 15:29:00 · 1091 阅读 · 6 评论 -
前端面试系列-JavaScrip原型链及new操作符的实现(附图解)
前端面试系列-JavaScript深入之从原型到原型链,new操作符的实现(手写代码)构造函数、实例、原型对象的概念构造函数、实例、原型对象的关系new操作符的工作原理原创 2021-03-21 15:26:48 · 839 阅读 · 3 评论 -
前端面试系列-JavaScript中的Event Loop(事件循环)机制(含图解)
前端面试系列-JavaScript中的Event Loop(事件循环)机制,javascript是一门单线程的非阻塞的脚本语言。浏览器环境下js引擎的事件循环机制执行栈与事件队列执行上下文执行栈栈溢出事件队列(Task Queue)事件循环(Event Loop)微任务(micro task)和宏任务(macro task)node环境下的事件循环机制1.与浏览器环境的差异2.事件循环模型3.事件循环各阶段详解原创 2021-03-21 14:11:17 · 2430 阅读 · 4 评论 -
JS的数据结构-9种数据类型及判断方法(附:数组的几种判断方法)
JS的数据结构及判断方法,数组的几种判断方法,:typeof,instance用法,js9种数据类型,6种原始类型undefined、Symbol、Boolean、BigInt、String、Numbernull、Object、Function原创 2021-03-21 12:30:34 · 1466 阅读 · 6 评论 -
面试官:谈谈对JS闭包的理解及常见应用场景(闭包的作用)
对JS闭包的理解及常见应用场景(闭包的作用);变量作用域如何从外部读取函数内部的变量setTimeout传参,封装变量,为节点循环绑定click事件3.闭包概念4.闭包用途5.闭包的理解6.闭包应用场景7.优缺点及解决办法8.垃圾回收机制原创 2021-03-19 17:25:52 · 19206 阅读 · 26 评论 -
遍历对象的属性(继承自原型的属性、不可枚举的属性)
遍历对象的属性,获取对象属性,包括自有属性、继承自原型的属性、不可枚举的属性原创 2021-03-18 21:17:51 · 1451 阅读 · 3 评论 -
ES6前端面试题整理
ES6前端面试题整理,es5和es6的区别, ES6新增的一些特性,箭头函数,模板字符串,解构赋值,... 展开运算符,修饰器 @,Symbol,Proxy代理,使用箭头函数应注意什么?Set、Map的区别?setTimeout、Promise、Async/Await 的区别,用class 手写一个promise,es6的导入导出模块转载 2021-03-18 20:56:02 · 7679 阅读 · 2 评论