网站首页 > 技术文章 正文
Web前端求职者该如何面试?JS相关面试题有哪些?JavaScript(简称“JS”) 是一种具有函数优先的轻量级、解释型或即时编译型的编程语言。JavaScript是前端三要素之一,也是很多同学在前端学习路上遭遇的第一条拦路虎。不过即使JavaScript学习不易,但我们仍然要学好它,因为企业招聘时都会考察求职者对JavaScript掌握程度。接下来小编就给大家讲解一下JavaScript相关的面试题。
1、JavaScript中undefined和not defined的区别
JavaScript未声明变量直接使用会抛出异常:var name is not defined,如果没有处理异常,代码就停止运行了。
但是,使用typeof undeclared_variable并不会产生异常,会直接返回undefined。
var x; // 声明 x
console.log(x); //output: undefined
console.log(typeof y); //output: undefined
console.log(z); // 抛出异常: ReferenceError: z is not defined
2、var f = function g(){ return 23; };
typeof g();//报错
这是一个名字是g的function expression,然后又被赋值给了变量f。
这里的函数名g和被其赋值的变量f有如下差异:
函数名g不能变动,而变量f可以被重新赋值;
函数名g只能在函数体内部被使用,试图在函数外部使用g会报错的。
3、怎么判断一个object是否是数组(array)?
方法1:使用Object.prototype.toString来判断是否是数组
function isArray(obj){
return Object.prototype.toString.call( obj ) === '[object Array]';
}
这里使用call来使toString中this指向obj,进而完成判断
方法2:使用原型链来完成判断
function isArray(obj){
return obj.__proto__ === Array.prototype;
}
基本思想是利用实例如果是某个构造函数构造出来的那么它的__proto__是指向构造函数的 prototype属性。
方法3:利用JQuery
function isArray(obj){
return $.isArray(obj)
}
JQuery isArray的实现其实就是方法1。
4、JavaScript怎么清空数组?
如var arrayList=['a','b','c','d','e','f'];
怎么清空arrayList
方法1:
arrayList=[];
直接改变arrayList所指向的对象,原对象并不改变。
方法2:
arrayList.length=0;
这种方法通过设置length=0使原数组清除元素。
方法3
arrayList.splice(0, arrayList.length);
和方法2相似。
5、减少页面加载时间的方法。
1、优化图片
2、图像格式的选择。GIF:提供的颜色较少,可用在一些对颜色要求不高的地方。
3、优化CSS。压缩合并css,如margin-top、margin-left...
4、网址后加斜杠。这样就能判断这个“目录是什么文件类型,或者是目录。
5、标明高度和宽度。如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了。
6、减少http请求。合并文件、合并图片。
6、如何优化网页的打印样式?
其中media指定的属性就是设备,显示器上就是screen,打印机则是print,电视是tv,投影仪是projection。打印样式示例如下:
但打印样式表也应注意以下事项:
打印样式表中最好不要用背景图片,因为打印机不能打印CSS中的背景。如要显示图片,请使用html插入到页面中。
最好不要使用像素作为单位,因为打印样式表要打印出来的会是实物,所以建议使用pt和cm。
隐藏掉不必要的内容。(@print div{display:none;})
打印样式表中最好少用浮动属性,因为它们会消失。如果想要知道打印样式表的效果如何,直接在浏览器上选择打印预览就可以了。
7、严格模式(strict mode)
严格模式用于标准化正常的JavaScript语义。严格模式可以嵌入到非严格模式中,关键字 ‘use strict’。使用严格模式后的代码应遵循JS严格的语法规则。例如,分号在每个语句声明之后使用。
想了解更多JavaScript面试题,想快速加入Web前端开发行列,可以选择专业学习一下,让自己高效率的学习、更能快速上岗拿高薪!
猜你喜欢
- 2024-10-05 前端面试,你有必要知道的一些JavaScript 面试题(上)
- 2024-10-05 几道看起来代码量很少的Javascript笔试题,看看你会不会做?
- 2024-10-05 前端面试题《JS基础》 前端面试 js
- 2024-10-05 前端面试题JavaScript 前端面试题目100及最佳答案
- 2024-10-05 day6:前端面试题(js) js前端面试题及答案
- 2024-10-05 2023年最新的JavaScript面试题 锦屏县2023年幼儿园面试题
- 2024-10-05 20个基本的JavaScript面试问题及答案
- 2024-10-05 逐渐深入的Javascript面试题,看看你能过几关?
- 2024-10-05 谷歌面试7个简单又棘手的前端JavaScript面试题
- 2024-10-05 day10:前端面试题(js) 前端面试题及答案 知乎
你 发表评论:
欢迎- 05-11FANUC修改前端目录教程
- 05-11前端分享-Set你不知道的事
- 05-11jq+ajax+bootstrap改了一个动态分页的表格
- 05-11千万级大表分页查询效率剧降,你会怎么办?
- 05-11Elasticsearch深度分页
- 05-11如何写一个简单的分页
- 05-11手速太快引发分页翻车?前端竞态陷阱揭秘
- 05-11「linux」Socket缓存是如何影响TCP性能的?
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)