BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇

上传人:我*** 文档编号:133051433 上传时间:2020-05-23 格式:PDF 页数:20 大小:241.04KB
返回 下载 相关 举报
BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇_第1页
第1页 / 共20页
BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇_第2页
第2页 / 共20页
BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇_第3页
第3页 / 共20页
BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇_第4页
第4页 / 共20页
BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇》由会员分享,可在线阅读,更多相关《BAT及各大互联网公司前端笔试面试题JAVASCRIPT篇(20页珍藏版)》请在金锄头文库上搜索。

1、很多面试题是我自己面试 BAT 亲身经历碰到的 整理分享出来希望更多的前端 er 共同进步 吧 不仅适用于求职者 对于巩固复习前端基础更是大有裨益 而更多的题目是我一路以来收集的 也有往年的 答案不确保一定正确 如有错误或有更好 的解法 还请斧正 前面几题是会很基础 越下越有深度 附上第二篇 BAT 及各大互联网公司 2014 前端笔试面试题 Html Css 篇 前面几题是会很基础 越下越有深度 初级初级 Javascript 1 JavaScript 是一门什么样的语言 它有哪些特点 是一门什么样的语言 它有哪些特点 没有标准答案 2 JavaScript 的数据类型都有什么 的数据类型都

2、有什么 基本数据类型 String boolean Number Undefined Null 引用数据类型 Object Array Date RegExp Function 那么问题来了 如何判断某变量是否为数组数据类型 方法一 判断其是否具有 数组性质 如 slice 方法 可自己给该变量定义 slice 方法 故有时会失效 方法二 obj instanceof Array 在某些 IE 版本中不正确 方法三 方法一二皆有漏洞 在 ECMA Script5 中定义了新方法 Array isArray 保 证其兼容性 最好的方法如下 1 2 3 4 5 6 if typeofArray i

3、sArray undefined Array isArray function arg returnObject prototype toString call arg object Array 3 已知已知 ID 的的 Input 输入框 希望获取这个输入框的输入值 怎么做 输入框 希望获取这个输入框的输入值 怎么做 不使用第三方框不使用第三方框 架架 1document getElementById ID value 4 希望获取到页面中所有的希望获取到页面中所有的 checkbox 怎么做 怎么做 不使用第三方框架不使用第三方框架 1 2 3 4 5 vardomList documen

4、t getElementsByTagName input varcheckBoxList varlen domList length 缓存到局部变量 while len 使用 while 的效率会比 for 循环更高 if domList len type checkbox 6 7 8 checkBoxList push domList len 5 设置一个已知设置一个已知 ID 的的 DIV 的的 html 内容为内容为 xxxx 字体颜色设置为黑色 字体颜色设置为黑色 不使用第三方不使用第三方 框架框架 1 2 3 vardom document getElementById ID dom

5、 innerHTML xxxx dom style color 000 6 当一个当一个 DOM 节点被点击时候 我们希望能够执行一个函数 应该怎么做 节点被点击时候 我们希望能够执行一个函数 应该怎么做 直接在 DOM 里绑定事件 在 JS 里通过 onclick 绑定 xxx onclick test 通过事件添加进行绑定 addEventListener xxx click test 那么问题来了 Javascript 的事件流模型都有什么 事件冒泡 事件开始由最具体的元素接受 然后逐级向上传播 事件捕捉 事件由最不具体的节点先接收 然后逐级向下 一直到最具体的 DOM 事件流 三个阶段

6、 事件捕捉 目标阶段 事件冒泡 7 什么是什么是 Ajax 和和 JSON 它们的优缺点 它们的优缺点 Ajax 是异步 JavaScript 和 XML 用于在 Web 页面中实现异步数据交互 优点 可以使得页面不重载全部内容的情况下加载局部内容 降低数据传输量 避免用户不断刷新或者跳转页面 提高用户体验 缺点 对搜索引擎不友好 要实现 ajax 下的前后退功能成本较大 可能造成请求数的增加 跨域问题限制 JSON 是一种轻量级的数据交换格式 ECMA 的一个子集 优点 轻量级 易于人的阅读和编写 便于机器 JavaScript 解析 支持复合数据类型 数组 对象 字符串 数字 8 看下列代

7、码输出为何 解释原因 看下列代码输出为何 解释原因 1 2 3 vara alert typeofa undefined alert b 报错 解释 Undefined 是一个只有一个值的数据类型 这个值就是 undefined 在使用 var 声明变量但并未对其赋值进行初始化时 这个变量的值就是 undefined 而 b 由于未声明 将报错 注意未申明的变量和声明了未赋值的是不一样的 9 看下列代码看下列代码 输出什么 解释原因 输出什么 解释原因 1 2 vara null alert typeofa object 解释 null 是一个只有一个值的数据类型 这个值就是 null 表示一

8、个空指针对象 所以 用 typeof 检测会返回 object 10 看下列代码看下列代码 输出什么 解释原因 输出什么 解释原因 1 2 3 4 5 6 7 8 9 varundefined undefined null true 1 true true 2 true false 0 false true 0 true NaN NaN false false true true undefined 与 null 相等 但不恒等 一个是 number 一个是 string 时 会尝试将 string 转换为 number 尝试将 boolean 转换为 number 0 或 1 尝试将 Obj

9、ect 转换成 number 或 string 取决于另外一个对比量的类型 所以 对于 0 空字符串的判断 建议使用 会先判断两边的值类型 类型不匹配时为 false 那么问题来了 看下面的代码 输出什么 foo 的值为什么 1 2 3 varfoo 11 2 1 console log foo console log typeoffoo 执行完后 foo 的值为 111 foo 的类型为 String 11 看代码给答案 看代码给答案 1 2 vara newObject a value 1 3 4 5 b a b value 2 alert a value 答案 2 考察引用数据类型细节

10、12 已知数组已知数组 var stringArray This is Baidu Campus Alert 出出 This is Baidu Campus 答案 alert stringArray join 已知有字符串 foo get element by id 写一个 function 将其转化成驼峰表示 法 getElementById 1 2 3 4 5 6 7 8 functioncombo msg vararr msg split for vari 1 i arr length i arr i arr i charAt 0 toUpperCase arr i substr 1 a

11、rr i length 1 msg arr join returnmsg 考察基础 API 13 var numberArray 3 6 2 4 1 5 考察基础 API 1 实现对该数组的倒排 输出 5 1 4 2 6 3 2 实现对该数组的降序排列 输出 6 5 4 3 2 1 1 2 3 4 5 6 7 8 functioncombo msg vararr msg split for vari 1 i arr length i arr i arr i charAt 0 toUpperCase arr i substr 1 arr i length 1 msg arr join retur

12、nmsg 14 输出今天的日期 以输出今天的日期 以 YYYY MM DD 的方式 比如今天是的方式 比如今天是 2014 年年 9 月月 26 日 则日 则 输出输出 2014 09 26 1 2 3 4 5 6 7 vard newDate 获取年 getFullYear 返回 4 位的数字 varyear d getFullYear 获取月 月份比较特殊 0 是 1 月 11 是 12 月 varmonth d getMonth 1 变成两位 month month 10 0 month month 8 9 10 11 获取日 varday d getDate day day 10 0

13、day day alert year month day 15 将字符串将字符串 id name 中的中的 id 替换成替换成 10 name 替换成替换成 Tony 使用正则表达式 使用正则表达式 答 案 id id name replace id g 10 replace name g Tony 16 为了保证页面输出安全 我们经常需要对一些特殊的字符进行转义 请写一个函为了保证页面输出安全 我们经常需要对一些特殊的字符进行转义 请写一个函数数 escapeHtml 将 将 case case return 17 foo foo bar 这行代码是什么意思 为什么要这样写 这行代码是什么意

14、思 为什么要这样写 答案 if foo foo bar 如果 foo 存在 值不变 否则把 bar 的值赋给 foo 短路表达式 作为 function console log foo varfoo 2 console log foo 答案 输出 undefined 和 2 上面代码相当于 1 2 varfoo 1 function 3 4 5 6 7 varfoo console log foo undefined foo 2 console log foo 2 函数声明与变量声明会被 JavaScript 引擎隐式地提升到当前作用域的顶部 但是只提升名 称不会提升赋值部分 19 用用 js

15、 实现随机选取实现随机选取 10 100 之间的之间的 10 个数字 存入一个数组 并排序 个数字 存入一个数组 并排序 1 2 3 4 5 6 7 8 9 variArray funtion getRandom istart iend variChoice istart iend 1 returnMath floor Math random iChoice istart for vari 0 i 10 i iArray push getRandom 10 100 iArray sort 20 把两个数组合并 并删除第二个元素 把两个数组合并 并删除第二个元素 1 2 3 4 vararray

16、1 a b c varbArray d e f varcArray array1 concat bArray cArray splice 1 1 21 怎样添加怎样添加 移除移除 移动移动 复制复制 创建和查找节点创建和查找节点 原生原生 JS 实在基础实在基础 没细写每一步没细写每一步 1 创建新节点 createDocumentFragment 创建一个 DOM 片段 createElement 创建一个具体的元素 createTextNode 创建一个文本节点 2 添加 移除 替换 插入 appendChild 添加 removeChild 移除 replaceChild 替换 insertBefore 插入 3 查找 getElementsByTagName 通过标签名称 getElementsByName 通过元素的 Name 属性的值 getElementById 通过元素 Id 唯一性 22 有这样一个有这样一个 URL url url split 1 varmap url split for vari 0 len map length i len i resultjQu

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号