前端面试
文章平均质量分 79
boboluotou
前端小白的进阶之路。
展开
-
JS 面试 Foo.getName()
function Foo() { getName = function () { console.log (1); }; // console.log('this is'+this) return this; } Foo.getName = function () { console.log (2); }; Foo.prototype.getName = function () { console.log('baidu'.原创 2021-05-15 20:12:32 · 809 阅读 · 0 评论 -
箭头函数跟普通函数的区别
目录1 箭头函数跟普通函数的区别2 箭头函数为什么不能使用new命令1 箭头函数跟普通函数的区别区别:1 箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象2 不可以使用arguments 对象,该对象在函数体内不存在。如果要用,可以用rest参数代替3 不可以使用yield命令,因此箭头函数不能用作Generator函数4 不可以使用new命令2 箭头函数为什么不能使用new命令普通函数可以使用new生成实例如何生成new实例呢,点击这里查看原因1 没有自原创 2021-05-12 10:24:46 · 149 阅读 · 0 评论 -
JavaScript 如何实现一个 new
目录1 new Object()创建2 Object.create()创建1 new Object()创建先定义一个构造函数,并定义构造函数的原型方法var Dog = function (name,age) { this.name = name; this.age = age;}Dog.prototype.bark = function () { console.log("wang wang")}Dog.prototype.sayName = function ()原创 2021-05-10 22:26:24 · 181 阅读 · 0 评论 -
前端浏览器缓存机制
目录1 缓存定义及其优点2 强缓存2.1 expires 和 Cache-Control3 协商缓存4 浏览器缓存位置1 缓存定义及其优点什么是缓存?当我们第一次访问网站的时候,电脑会把网站上的图片和数据下载到电脑上,当我们再次访问的时候,网站就会从电脑中直接加载出来,这就是缓存。比如我们访问网页点击后退功能的时候,加载的非常快,这就是缓存的优势。缓存优点:1 缓存服务器压力,不用每次都去请求某些数据了2 提升性能,打开本地资源肯定会比请求服务器更快3 减少带宽消耗,当我们使用缓存时,只会产原创 2021-05-09 10:04:43 · 1359 阅读 · 1 评论 -
JS 数字的千位分隔法
目录1 整数的千位分隔法1.1 正则分隔1.2 遍历分隔1.3 refuce函数分隔2 有小数划分2.1 正则化分隔2.2 toLocalString()函数1 整数的千位分隔法1.1 正则分隔相关知识:(?=p),其中p是一个子模式,即p前面的位置。(hello (?=e) 指e前面的位置 “h#ello”)(?!p)就是(?=p)的反面意思(hello (?!e) 指除e前面的位置 “#he#l#l#o#”)写个正则不匹配任何东西: /.^/数字的千分位就是把"12345678",原创 2021-05-08 10:30:36 · 838 阅读 · 0 评论 -
简单理解js的深浅拷贝
目录1 深浅拷贝1.1 浅拷贝介绍1.2 深拷贝介绍2 实现浅拷贝2.1 手撕浅拷贝函数2.2 库函数实现浅拷贝2.2.1 Object.assign()2.2.2 展开语法 Spread3 实现深拷贝3.1 JSON.parse(JSON.stringify(object))3.2 手撕深拷贝代码3.3 map解决循环引用问题3.3.3 WeakMap优化Map3.4 其他数据类型1 深浅拷贝 深浅拷贝是原创 2021-05-06 18:24:53 · 445 阅读 · 0 评论 -
JS的reduce的介绍和应用
目录1 reduce的介绍2 reduce的用法2.1 数组中求和,最大值,最小值2.2 累加对象数组中的和2.3 数组扁平化2.4 计算数组中每个元素出现的次数2.5 按属性对object分类2.6 数组去重2.7 reduce 实现map2.8 reduce实现filter1 reduce的介绍语法:arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])callback 执行数组中的每原创 2021-05-05 15:06:13 · 619 阅读 · 1 评论 -
JavaScript 之 call 和 apply 的模拟实现
目录1 call和apply的区别2 call 方法的实现2.1 设计思路2.1.1 第一步改变this指向2.1.2 第二步参数个数不确定2.1.3 传入参数为空或有返回值2.2 最终代码2.2.1 传入参数只有context 时2.2.2 参数为2的时候3 apply 的实现1 call和apply的区别call()方法接受的是参数列表apply()方法接受的是一个参数数组。它们的共同之处:都可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由this指定的新对象。原创 2021-05-03 21:51:09 · 542 阅读 · 6 评论 -
js 的继承
目录1 继承方式1.1 原型链继承1.2 借用构造函数继承1.3 组合继承1.4 原型式继承1.5 寄生继承1.6 寄生组合式继承2 相关知识2.1 Object.create()1 继承方式参考链接1参考链接21.1 原型链继承需要两个构造函数来完成一个原型链继承基本原理:使用类似作用域的原型链,进行继承查找 // SuperType 构造函数称为超类 function SuperType (){ this.name='super'; this.friend=[];原创 2021-04-24 19:24:27 · 315 阅读 · 0 评论 -
JS 原型 构造函数 对象的关系
目录1 原型链2 构造函数、原型对象和实例之间的关系1 原型链所有引用类型都有一个_proto_(隐式原型)属性,属性是一个普通的对象所有函数都有一个prototype(原型)属性,属性值是一个普通的对象所有引用类型的_proto_(隐式原型)指向它的构造函数的prototype每一个原型都有一个constructor属性,指向该关联的构造函数2 构造函数、原型对象和实例之间的关系function F(){}var f = new F();// 构造器console.log(F.p原创 2021-04-24 11:40:09 · 174 阅读 · 0 评论 -
JavaScript中的this
目录1 内存中的数据结构1.1 内存的数据结构1.2 函数的内存存放1.3 环境变量2 this的值是什么?2.1 语法糖转换2.2 []语法2.3 总结3 this的指向3.1 普通函数的this3.2 箭头函数的this3.3 匿名函数的this1 内存中的数据结构var obj = { foo: function () { console.log(this.bar) }, bar: 1};var foo = obj.foo;var bar = 2;obj.foo() // 1原创 2021-04-21 11:34:31 · 337 阅读 · 1 评论 -
手动实现Promise.all()和 Promise.race()
参考链接:https://www.jianshu.com/p/c17085ce40ec1 Promise.allPromise.all() 方法接收一个promise的iterable类型(注:Array,Map,Set都属于ES6的iterable类型)的输入,并且只返回一个Promise实例, 那个输入的所有promise的resolve回调的结果是一个数组。这个Promise的resolve回调执行是在所有输入的promise的resolve回调都结束,或者输入的iterable里没有promi原创 2021-03-21 16:18:06 · 464 阅读 · 0 评论 -
Promise
1 为什么使用PromisePromise是异步编程的一种解决方案。可以将异步操作队列化,按照期望的顺序执行,返回符合预期的结果可以在对象之间传递和操作promise,帮助我们处理队列1.1 异步回调的问题之前处理异步是通过纯粹的回调函数的形式进行处理;很容易进入到回调地狱中,剥夺了函数return的能力;问题可以解决,但是难以读懂,维护困难;稍有不慎就会踏入回调地狱 - 嵌套层次深,不好维护;1.2 什么时候会来处理异步事件呢?一种很常见的场景应该就是网络请求了。我们封装一原创 2021-03-21 11:39:13 · 112 阅读 · 0 评论 -
浮动
文章目录1什么是浮动2 怎样就是浮动3 为什么清除浮动4 清除浮动方法4.1 额外标签法4.2 父级添加overflow属性4.3 使用after伪元素4.4 使用before和after双伪元素1什么是浮动浮动最开始出现的意义是为了让文字环绕图片,后来发展着发现浮动可以让多个块级元素并排显示,这样子很方便只需要一个属性。到这里肯定有人会问了,那我把display属性设置为inline-block不也能达到效果,为啥还用浮动。那有没有考虑过我就要这些元素从右往左排列呢哈哈哈,所以浮动可以控制居左还是居右原创 2021-02-02 14:03:57 · 141 阅读 · 0 评论