Web前端开发常见面试题合集(二)_惠州前端培训学校
作者:hz_admin01发布时间:2022-05-01分类:前端开发专业浏览:714
今天我们跟着惠州北大青鸟老师一起来了解一下Web前端开发常见面试题合集(二),希望对大家有帮助。
1. 说说你对作用域链的理解?
作用域链的作用是保证执行环境里
有权访问的变量和函数是有序的,
作用域链的变量只能向上访问,
变量访问到window对象即被终止,
作用域链向下访问变量是不被允许的;
作用域就是变量与函数的可访问范围,
即作用域控制着变量与函数的可见性
和生命周期。
2. 请说说JavaScript原型,原型链 ?
原型:
当我们访问一个对象的属性时,
每个对象都会在其内部初始化一个属性,
就是prototype(原型);
原型链:
如果这个对象内部不存在这个属性,
那么他就会去prototype里找这个属性,
这个prototype又会有自己的prototype,
于是就这样一直找下去,
也就是我们平时所说的原型链;
两者关系:
instance.constructor.prototype = instance.__proto__
3. 请解释什么是事件代理?
事件代理(Event Delegation),
又称之为事件委托。
是 JavaScript 中常用绑定事件
的常用技巧。
“事件代理”即是把原本需要绑定
的事件委托给父元素,让父元素
担当事件监听的角色。
事件代理的原理是DOM元素的事件冒泡。
使用事件代理的好处是可以提高性能,
可以大量节省内存占用,减少事件注册,
比如在ul上代理所有li的click事件;
此外, 还可以实现动态新增子对象时无需
再次对其绑定事件。
4. new操作符具体完成了哪几个操作?
1) 创建一个空对象, 定义this 变量引用该对象,
同时还继承了该函数的原型;
2) 属性和方法被加入到 this 引用的对象中;
3) 新创建的对象由 this 所引用,
并且最后隐式的返回 this
5. 说几条写JavaScript的基本规范?
1) 不要在同一行声明多个变量;
2) 请使用===/!==来比较true/false或者数值;
3) 使用对象字面量替代new Object这种形式;
4) 减少使用全局函数, 全局变量;
5) switch语句必须带有default分支;
6) if语句必须使用大括号;
7) for-in循环中的变量;
应该使用var关键字明确限定作用域;
从而避免作用域全局污染。
6. 如何判断一个对象是否为数组?
function isArray(arg) {
if (typeof arg === 'object') {
return Object.prototype.toString.call(arg) === '[object Array]';
return false;
}
}
7. 冒泡排序?
思路:
每次比较相邻的两个数,
如果后一个比前一个小,换位置;
var arr = [2, 0, 1, 9, 8, 7, 3];
function bubbleSort(arr) {
for (var i = 0; i < arr.length - 1; i++) {
for(var j = 0; j < arr.length - 1; j++) {
if(arr[j + 1] < arr[j]) {
var temp;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
console.log(bubbleSort(arr));
8. 快速排序?
思路: 采用二分法,取出中间数,
数组每次和中间数比较,
小的放到左边,大的放到右边;
var arr = [2, 0, 1, 9, 8, 7, 3];
function quickSort(arr) {
if(arr.length == 0) {
return []; // 返回空数组
}
var cIndex = Math.floor(arr.length / 2);
var c = arr.splice(cIndex, 1);
var l = [];
var r = [];
for (var i = 0; i < arr.length; i++) {
if(arr[i] < c) {
l.push(arr[i]);
} else {
r.push(arr[i]);
}
}
return quickSort(l).concat(c, quickSort(r));
}
console.log(quickSort(arr));
9. 请用至少3中方式实现数组去重?
方法一: indexOf
var arr1=[1,2,3,4,5,4,3,2,1];
function repeat1(arr){
for(var i=0,arr2=[];i<arr.length;i++){
if(arr2.indexOf(arr[i])==-1){
arr2.push(arr[i]);
}
}
return arr2;
}
方法二: hash
function repeat2(arr){
// 1. 遍历arr中每个元素,同时声明hash
for(var i=0,hash={};i<arr.length;i++){
// hash中是否包含当前元素值的建
// 如果不包含,就hash添加一个新元素,
// 以当前元素值为key,value默认为1
if(hash[arr[i]]===undefined){
hash[arr[i]]=1;
}
}
// 2. 将hash转为索引
var i=0;
var arr2=[];
for(arr2[i++] in hash);
return arr2;
}
方法三: 正则
function repeat3(arr){
return arr.sort().join(",,").
replace(/(^|,,)([^,]+)(,,\2)*/g,"$1$2").split(",,");}
console.log(repeat3(arr1));
10. HTTP状态码及其含义?
1XX:
信息状态码100 Continue 继续,
一般在发送post请求时,
已发送了http header之后服务端将返回此信息,
表示确认,之后发送具体参数信息;
2XX:
成功状态码200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
3XX:
重定向301 Moved Permanently 请求的网页已永久移动到新位置。
302 Found 临时性重定向。
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified 自从上次请求后,请求的网页未修改过。
4XX:
客户端错误
400 Bad Request 服务器无法理解请求的格式,
客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized 请求未授权。
403 Forbidden 禁止访问。
404 Not Found 找不到如何与 URI 相匹配的资源。
5XX:
服务器错误500 Internal Server Error 最常见的服务器端错误。
503 Service Unavailable 服务器端暂时无法处理请求
(可能是过载或维护)。
想了解更多关于前端的知识吗?可以来惠州北大青鸟新方舟校区了解一下。
标签:惠州前端培训学校惠州前端基础惠州前端培训北大青鸟IT计算机学校北大青鸟IT软件学校前端北大青鸟IT学校惠州北大青鸟北大青鸟
- 前端开发专业排行
- 标签列表
-
- Java (3694)
- 北大青鸟 (3713)
- 软件开发 (3613)
- JAVA (3413)
- UI设计入门 (2093)
- 惠州北大青鸟 (4375)
- 惠州IT培训 (2558)
- UI设计培训 (2090)
- 惠州UI设计培训 (2095)
- 惠州UI设计培训学校 (2090)
- 惠州计算机软件培训 (6260)
- 惠州计算件软件开发 (6260)
- 惠州计算机软件基础 (6261)
- 惠州计算机JAVA培训 (3574)
- 惠州计算机Java软件开发 (3620)
- 惠州计算机JAVA软件开发 (4645)
- 惠州计算机JAVA软件开发学校 (3338)
- 惠州计算机Java软件开发培训 (3338)
- 北大青鸟IT计算机学校 (5048)
- 北大青鸟IT软件学校 (5062)
- 北大青鸟IT学校 (5059)
- 惠州计算机UI设计软件开发 (2088)
- UI设计基础教程 (2088)
- UI设计是什么 (2088)
- UI设计教程 (2088)
- 网站分类
-
- 计算机教程
- 计算机入门
- 职业学校
- 新闻动态
- 专业课程
- 热门技术
- SEO
- 培训教程
- windows
- linux教程
- 系统集成
- 网站开发
- Html5
- 办公软件
- 师资力量
- 热点问答
- 联系我们
- 计算机学校
- 惠州计算机学校
- 河源计算机学校
- 广州计算机学校
- 深圳计算机学校
- 湛江计算机学校
- 佛山计算机学校
- IT计算机培训信息
- 设计专业
- UI
- 影视特效
- 游戏动漫设计
- Photoshop
- AI设计
- 软件教程
- Java技术
- C语言/C++语言培训
- C#
- Python技术
- PHP
- 数据库
- SQL Server
- 网络教程
- 网络安全
- 网络营销
- 软件专业
- 大数据专业
- 前端开发专业
- 软件测试专业
- Python专业
- 软件实施
- 珠海计算机学校
- 初中生学什么好
- 计算机认证
- 文章归档
-
- 2024年11月 (14)
- 2024年10月 (32)
- 2024年9月 (29)
- 2024年8月 (68)
- 2024年7月 (59)
- 2024年6月 (43)
- 2024年5月 (48)
- 2024年4月 (80)
- 2024年3月 (65)
- 2024年2月 (54)
- 2024年1月 (25)
- 2023年12月 (12)
- 2023年11月 (73)
- 2023年10月 (134)
- 2023年9月 (34)
- 2023年8月 (3)
- 2023年7月 (3)
- 2023年6月 (12)
- 2023年5月 (30)
- 2023年4月 (72)
- 2023年3月 (11)
- 2023年2月 (34)
- 2023年1月 (37)
- 2022年12月 (78)
- 2022年11月 (359)
- 2022年6月 (1193)
- 2022年5月 (570)
- 2022年4月 (1567)
- 2022年3月 (982)
- 2022年2月 (54)
- 2022年1月 (182)
- 2021年9月 (308)
- 2021年8月 (1704)
- 2021年7月 (2423)
- 2021年6月 (1806)
- 2021年5月 (1569)
- 2021年4月 (1380)
- 2021年3月 (1255)
- 2021年2月 (709)
- 2021年1月 (1521)
- 2020年12月 (3626)
- 2020年11月 (1646)
- 2020年10月 (1046)
- 2020年9月 (592)
- 最近发表
-
- 清远信息:2024年广清杯清远南粤家政技能大赛举行决赛|||计算机培训机构
- 汕尾信息:陈良川带队到汕尾技师学院调研|||计算机职业技能培训班
- 东莞信息:凤岗凤岗镇组织召开社保参保缴费及劳动用工政策宣讲会|||计算机软件培训学校
- 阳江信息:2024年度注册城乡规划师职业资格考试的合格标准是怎样的?|||计算机软件培训学校
- 阳江信息:职业技能提升补贴对象有哪些?|||大学生计算机培训学校
- 清远信息:清远市首家社保服务合作网点在清城区举办启动仪式|||计算机职业技能培训班
- 汕头信息:招聘658名中高端人才!2024年汕头市引进中高端人才专场招聘会举行|||北大青鸟计算机培训中心
- 东莞信息:广东省社保智能经办现场会在东莞召开|||大学生计算机培训学校
- 东莞信息:东坑镇举办2024年重点群体系列招聘活动|||计算机职业技能培训班
- 东莞信息:万江万江街道成功举办第四届粤菜师傅烹饪技能竞赛|||广州计算机编程培训