![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端常见面试题
文章平均质量分 62
开发小白——Liderder
这个作者很懒,什么都没留下…
展开
-
对象和数组的遍历——是否会遍历到继承属性以及不可枚举属性
一、对象1.for...infor...in,只遍历对象自身的和继承的可枚举属性(不含Symbol属性)。2.Object.keys()返回一个数组,包括对象自身的(不含继承的)所有可枚举的属性(不含Symbol属性)的键名。推荐对象的遍历使用这个方法。3.Object.getOwnPropertyNames()Object.getOwnPropertyNames,返回一个数组,包含对象自身的所有属性(不含 Symbol 属性,但是包括...原创 2022-03-25 15:51:58 · 450 阅读 · 1 评论 -
手写call函数
javascript中的call方法是使用一个指定的 this 值和单独给出的一个或多个参数来调用一个函数。这样就可以修改this的指向。下面是如何自己实现一个call方法,主要注意的点是,如何修改this的指向,我们都知道在普通函数中this是指向函数的调用者,那么我们要达到将this指向传入的target上即可,也就是说使用target来调用我们想调用的函数就可以,所以可以将需要调用的函数作为target对象上的一个属性,通过target.fn的方式来调用,就可以修改fn内部的this指向了。最后记着原创 2021-11-06 19:04:12 · 501 阅读 · 2 评论 -
JS中如何使对象或者属性不能被改变?有几种方法呢?
Javascipt中如果想使得对象或属性不能被修改,有很多种方式,下面由对象冻结的深浅程度,依次记录(由浅入深)。1. Object.preventExtensionsObject.preventExtensions()方法让一个对象变的不可扩展,也就是永远不能再添加新的属性。 let obj = {} Object.preventExtensions(obj) obj.name = 'liderder' console.log(obj);我们可以看到,obj中没有添加na原创 2021-09-15 19:47:51 · 4842 阅读 · 0 评论 -
js中数组常用API总结
今天捋捋有关JS中数组API的知识。先来看Array的静态方法,然后是Array的实例方法。1.静态方法:1.1 Array.from():从类数组对象或者可迭代对象中创建一个新的数组实例 let set = new Set(['a', 'b', 'c', 'd']) let arr = Array.from(set) console.log(arr, arr instanceof Array);浏览器打印结果:1.2 Array.isArray():用来判断某个变量是否是一个原创 2021-09-15 11:46:10 · 390 阅读 · 0 评论 -
前端面试题——防抖和节流(一)
主要来看一下面试经常被问道的防抖和节流1.防抖防抖在我理解来其实就是事件触发时在n秒后调用事件绑定的方法,如果n秒内再次触发这个事件,那么重新计时。下面以浏览器的滚动条为例,如果有这样一个需求 :我需要监听用户浏览器的滚动事件,返回用户距离顶部的距离,那么可以用一下代码实现:function showTop() { let scollTop = document.body.scrollTop || document.documentElement.scrollTop原创 2021-09-14 21:56:23 · 108 阅读 · 0 评论