2022前端面试笔试题及答案

本文详细探讨了前端面试中常见的知识点,包括继承原理、Object.create、闭包、垃圾回收机制、深浅拷贝、函数的节流与防抖、call、apply的区别、bind的使用以及事件的捕获与冒泡。还提供了实例解析和代码示例,帮助读者深入理解这些概念。
摘要由CSDN通过智能技术生成

[](()继承


原理是:复制父类的属性和方法来重写子类的原型对象

原型继承

构造函数继承

组合继承

寄生继承

寄生组合继承

class

等等

// 寄生组合继承方法

function Father(…arr) {

this.some = ‘父类属性’;

this.params = arr;

}

Father.prototype.someFn = function() {

console.log(1);

}

Father.prototype.someValue = ‘2’;

function Son() {

Father.call(this, ‘xxxx’);

this.text = ‘2222’;

}

Son.protptype = Object.create(Father.prototype);

Son.prototype.constructor = Son;

[](()Object,create做了什么


Object._create = function(obj){

function F(){}; // 创建了一个新的构造函数F

F.prototype = obj; // 然后将构造函数F的原型指向了参数对象obj

return new F(); // 返回构造函数F的实例对象,从而实现了该实例继承obj的属性。

}

[](()闭包


闭包就是有权访问一个函数内部变量的函数,也就是常说的函数内部嵌套函数,内部函数访问外部函数变量

以下是几道前端面试笔试题及参考答案: 1. 请简述盒模型,并说明 box-sizing 属性的作用。 盒模型分为标准盒模型和怪异盒模型,标准盒模型的宽度(width)和高度(height)只包括内容(content),而怪异盒模型的宽度(width)和高度(height)包括了内容(content)、内边距(padding)和边框(border)。 box-sizing 属性可以控制盒模型的类型,有两个值:content-box 和 border-box。默认值为 content-box,表示使用标准盒模型;而 border-box 表示使用怪异盒模型,即宽度(width)和高度(height)包括了内容、内边距和边框。 2. 请简述 CSS 中的 BEM 命名规范。 BEM 是一种 CSS 命名规范,全称为 Block Element Modifier。它的原理是将页面中的元素划分为块(Block)、元素(Element)和修饰符(Modifier)三个部分,并使用连字符(-)来连接它们的名称,从而形成类名。例如: ``` .block {} .block__element {} .block--modifier {} ``` 其中,block 表示块,element 表示元素,modifier 表示修饰符。块是页面上的独立部分,元素是块的组成部分,修饰符是用来改变块和元素的外观和行为的。 BEM 命名规范的优点是可读性好、易于维护和扩展、语义化明确,能够有效地减少样式冲突。 3. 请简述 JavaScript 中的闭包,并说明闭包的作用。 闭包是指函数与其相关的引用环境组合而成的实体。在 JavaScript 中,每次调用函数都会创建一个新的执行环境,当函数执行完毕后,该执行环境会被销毁。但是,如果函数返回了一个内部函数,并且该内部函数引用了外部函数的变量,则该内部函数就会形成一个闭包,保留了外部函数的执行环境,不会被销毁。 闭包的作用是可以访问外部函数中的变量和函数,并且可以将其保存下来,供以后使用。闭包通常用来实现模块化、封装变量、缓存数据等功能。但是,过多地使用闭包也会导致内存泄漏等问题,需要谨慎使用。 以上是几道前端面试笔试题及参考答案,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值