• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JavaScript > Javascript前端经典的面试题及答案

Javascript前端经典的面试题及答案

作者:Vampire-blog 字体:[增加 减小] 来源:互联网 时间:2017-05-11

Vampire-blog通过本文主要向大家介绍了Javascript前端经典的面试题及答案等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

前言

如果面试题按类型来分,主要涉及到“技术”与“非技术”两大类,技术类别下涉及到的子类别有:

  1. 移动 & PC端布局类
  2. JavaScript 核心基础类
  3. 衍生框架类
  4. 项目应用类

这四大类别的面试题若按出现频率来划分,则面试时 100% 会问到的题型有:“移动端&PC端布局类、JavaScript 核心基础类”。本次选择这两类中难度更高一些的 “JavaScript 核心基础类” 面试题,进行了分析和解答,供面试前准备。

特别说明:

假如你在面试时被这些题型卡住了,就必须正视自己的知识短板,并且要心悦城服的刻苦钻研、直至学会为止!毕竟想要成为一个合格的 “WEB前端工程师”,掌握以下这些 JavaScript 核心的基础知识,才担得上“合格”这两个字,否则就是“冒牌”的哦~

一、JavaScript 的 typeof 返回哪些数据类型?

分析:

这道题检验的是 JS 基本功,只要对 typeof 运算符是了解的,就没有太大难度。具体在回答的时候,再结合理论知识和编码过程中实际情况进行回答即可。另外,考虑到面试时的严谨性, ES2015 中新增的类型也并入回复中。

建议回复:

首先,JavaScript 中一共有两大数据类型:

  1. 基础类型
  2. 引用类型

    ·  基础类型包括:Number、String、Boolean、Null、Undefined、Symbol(该类型位 ES2015 中新增类型)

    ·  引用类型包括:Object typeof 运算符把类型信息以字符串形式返回,需要注意的是 typeof 返回的类型和 JavaScript 定义的类型有细微的差异。 typeof 返回七种可能的值:“number”、“string”、“boolean”、“object”、"symbol"、“function”和“undefined”。

二、请写出以下代码运算结果:

alert(typeof null);
alert(typeof undefined);
alert(typeof NaN);
alert(NaN == undefined);
alert(NaN == NaN);
var str = "123abc";
alert(typeof str++);
alert(str);
</div>

分析:

这道题与“题目一”是连环扣,当“题目一”回答完后,通过此题再一次强化运算符和数据类型的基本功。

建议回复:

本题主要是考察 typeof 判断值的类型,它们输出的结果依次是:

alert(typeof null); // object
alert(typeof undefined); // undefined
alert(typeof NaN); // number
alert(NaN == undefined); // false
alert(NaN == NaN); // false
var str = "123abc";
alert(typeof str++); // number
alert(str); // NaN
</div>

三、例举至少 3 种强制类型转换和 2 种隐式类型转换?

分析:

类型转换听起来可能有点宽泛,但这道题明确给出了回答的范围。

建议回复:

1. 强制类型转换: 明确调用内置函数,强制把一种类型的值转换为另一种类型。强制类型转换主要有:Boolean、Number、String、parseInt、parseFloat

2. 隐式类型转换: 在使用算术运算符时,运算符两边的数据类型可以是任意的,比如,一个字符串可以和数字相加。之所以不同的数据类型之间可以做运算,是因为 JavaScript 引擎在运算之前会悄悄的把他们进行了隐式类型转换。隐式类型转换主要有:+、–、==、!

四、JavaScript 的事件流模型都有什么?

建议回复:

事件流描述的是从页面中接收事件的顺序。 DOM 结构是树形结构,当页面中的某一个元素触发了某个一个事件,事件会从最顶层的 window 对象开始,向下传播到目标元素,途径的祖先节点都会触发对应的事件,如果当前节点的该事件绑定了事件处理函数的话,则会执行该函数当事件达到目标元素并执行绑定函数(如果有绑定的话)后,事件又会向上传播到 window 元素,途径的祖先节点都会触发对应的事件(如果绑定事件处理函数的话)

事件流包含三个阶段:

  • 事件捕捉阶段
  • 处于目标阶段
  • 事件冒泡阶段

      事件捕捉阶段:事件开始由顶层对象触发,然后逐级向下传播,直到目标的元素;

      处于目标阶段:处在绑定事件的元素上;

      事件冒泡阶段:事件由具体的元素先接收,然后逐级向上传播,直到不具体的元素;

五、BOM 对象有哪些,列举 window 对象?

建议回复:

  1. window 对象,是 JS 的最顶层对象,其他的 BOM 对象都是 window 对象的属性;
  2. document 对象,文档对象;
  3. location 对象,浏览器当前URL信息;
  4. navigator 对象,浏览器本身信息;
  5. screen 对象,客户端屏幕信息;
  6. history 对象,浏览器访问历史信息;

六、请简述 AJAX 及基本步骤?

分析:

对于这种纯概念题,建议面试前再写一遍原生 AJAX 函数的封装过程,一定要在理解的基础上去背,才会在面试时有良好发挥。

建议回复:

简述 AJAX:AJAX即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的网页开发技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

AJAX 基本步骤:

  1. 初始化ajax对象
  2. 连接地址,准备数据
  3. 发送请求
  4. 接收数据(正在接收,尚未完成)
  5. 接收数据完成
//初始化ajax对象
var xhr = xhr = new XMLHttpRequest();
//连接地址,准备数据
xhr.open(“方式”,”地址”,是否为异步);
//接收数据完成触发的事件
xhr.onload =function(){}
//发送数据
xhr.send();
</div>

七、HTTP 状态消息 200 302 304 403 404 500 分别表示什么?

分析:

“带着理解去记忆” 是对付概念题最好的法宝,此外多看看延展的知识点,也是有益无害。

建议回复:

  • 200:请求已成功,请求所希望的响应头或数据体将随此响应返回。
  • 302:请求的资源临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在 Cache-Control 或 Expires 中进行了指定的情况下,这个响应才是可缓存的。
  • 304:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码。304 响应禁止包含消息体,因此始终以消息头后的第一个空行结尾。
  • 403:服务器已经理解请求,但是拒绝执行它。
  • 404:请求失败,请求所希望得到的资源未被在服务器上发现。
  • 500:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器端的源代码出现错误时出现。

八、同步和异步的区别?

分析:

又是概念题。

建议回复:

  • 首先同步异步于阻塞非阻塞并没有关系。同步异步主要是事情做完以后,如何进行处理、或者说关注的是一种消息通信机制。
  • 同步的情况下,是由处理消息者自己去等待消息是否被触发;
  • 而异步的情况下是由触发机制来通知处理消息者;

举例: 比如在上课时,你问老师一个问题,这个问题可能需要花费一点时间去思考,这个时候老师可能:

  • 思考,思考……,好了,有答案了;
  • 这个问题需要一点时间,你先做点别的,等我想好了,去找你。

第一种就是同步,第二种就是异步。所以同步异步可以说是对被请求方来说的,被请求者使用什么方式来告知处理结果。

  • 阻塞非阻塞,主要是对于请求者而言的。
  • 阻塞:发出请求等待结果返回,然后再处理后续的事情;
  • 非阻塞:发出请求不等待结果返回,可以接着做后续的事情;

举例,还是上一个例子:

  • 老师在使用同步思考的时候,你可以静静的等待老师给出答案,也可以边做自己的事情边等待老师的回答,当然这时候你需要时
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11video.js使用改变ui过程
  • 2017-05-11JavaScript验证知识整理
  • 2017-05-11JS实现京东首页之页面顶部、Logo和搜索框功能
  • 2017-05-11jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
  • 2017-09-14js 获取浏览器高度和宽度等属性值总结
  • 2017-05-11基于node.js依赖express解析post请求四种数据格式
  • 2017-05-11用jQuery旋转插件jqueryrotate制作转盘抽奖
  • 2017-05-11jQuery的ajax中使用FormData实现页面无刷新上传功能
  • 2017-05-11基于jQuery实现照片墙自动播放特效
  • 2017-05-11JavaScript中无法通过div.style.left获取值的解决方法

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • jQuery监听浏览器窗口大小的变化实例
    • 微信小程序访问node.js接口服务器搭建教程
    • JS获取本周周一,周末及获取任意时间的周一周末功能示例
    • jQuery图片瀑布流的简单实现代码
    • JS简单实现点击按钮或文字显示遮罩层的方法
    • Angular.js与node.js项目里用cookie校验账户登录详解
    • Bootstrap表单制作代码
    • JS实现课堂随机点名和顺序点名
    • jQuery、zepto、js常用小技巧
    • vue2实现移动端上传、预览、压缩图片解决拍照旋转问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有