Skip to the content.
  1. document load 和 document ready 的区别
  2. JavaScript 中如何检测一个变量是一个 String 类型?
  3. 请用 js 去除字符串空格?
  4. js 是一门怎样的语言,它有什么特点
  5. == 和 === 的不同
  6. 怎样添加、移除、移动、复制、创建和查找节点?
  7. 事件委托是什么
  8. require 与 import 的区别
  9. javascript 对象的几种创建方式
  10. JavaScript 继承的方式和优缺点
  11. 什么是原型链?
  12. 复杂数据类型如何转变为字符串
  13. javascript 的 typeof 返回哪些数据类型
  14. 一次js请求一般情况下有哪些地方会有缓存处理?
  15. 列举 3 种强制类型转换和 2 种隐式类型转换
  16. 你对闭包的理解?优缺点?
  17. 如何判断 NaN
  18. new 一个对象的过程中发生了什么
  19. for in 和 for of的区别
  20. 如何判断 JS 变量的一个类型(至少三种方式)
  21. for in、Object.keys 和 Object.getOwnPropertyNames 对属性遍历有什么区别?
  22. iframe 跨域通信和不跨域通信
  23. H5 与 Native 如何交互
  24. 如何判断一个对象是否为数组
  25. <script> 标签的 defer 和 asnyc 属性的作用以及二者的区别?
  26. Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别好坏
  27. 什么是面向对象?
  28. 你对松散类型的理解
  29. JS 严格模式和正常模式的区别
  30. 移动端 click 事件、touch 事件、tap 事件的区别
  31. JS 单线程还是多线程,如何显示异步操作
  32. JavaScript 数组的函数 map/forEach/reduce/filter
  33. JS 块级作用域、变量提升
  34. null/undefined 的区别
  35. JS 哪些操作会造成内存泄露
  36. 重排与重绘的区别,什么情况下会触发?
  37. 观察者模式和发布订阅者模式
  38. jsonp 优缺点?
  39. 兼容各种浏览器版本的事件绑定
  40. typescript 遇到过什么坑
  41. this 和 apply 的应用
  42. split() join()的区别
  43. JavaScript 的数据类型
  44. 如何判断一个对象是否属于某个类?
  45. new 操作符具体干了什么呢?
  46. call()与apply()的作用与区别?
  47. sort 排序原理
  48. Zepto 的点透问题如何解决?
  49. 如何判断当前脚本运行在浏览器还是 node 环境中?
  50. 移动端最小触控区域是多大?
  51. 移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?
  52. 解释 JavaScript 中的作用域与变量声明提升?
  53. Node. js 的适用场景?
  54. bind、call、apply 的区别
  55. 使用构造函数的注意点
  56. 如何获取浏览器版本信息
  57. 如何实现文件断点续传
  58. 数组的常用方法
  59. 字符串常用操作
  60. 作用域的概念及作用
  61. 作用域的分类
  62. js 属于哪种作用域
  63. 浮点数精度
  64. 自执行函数? 用于什么场景?好处?
  65. 多个页面之间如何进行通信
  66. css 动画和 js 动画的差异
  67. 如何做到修改 url 参数页面不刷新
  68. 数组方法 pop() push() unshift() shift()
  69. 事件绑定与普通事件有什么区别
  70. IE 和 DOM 事件流的区别
  71. IE 和标准下有哪些兼容性的写法
  72. 变量提升
  73. 如何阻止冒泡与默认行为
  74. js 中 this 闭包 作用域
  75. javascript 的本地对象,内置对象和宿主对象
  76. javascript 的同源策略
  77. 事件冒泡与事件捕获
  78. foo = foo   bar ,这行代码是什么意思?为什么要这样写?
  79. 复杂数据类型如何转变为字符串
  80. javascript 中 this 的指向问题
  81. call 与 apply 区别
  82. 正则表达式构造函数 var reg = new RegExp(‘xxx’)与正则表达字面量 var reg = // 有什么不同?
  83. js 中 callee 与 caller 的作用
  84. 异步加载 js 的方法
  85. 去除数组重复成员的方法
  86. 去除字符串里面的重复字符
  87. 求数组的最大值
  88. JS 中 文档碎片的理解和使用
  89. 原型的作用 以及什么是原型
  90. javascript 里面的继承怎么实现,如何避免原型链上面的对象共享
  91. 简单介绍下 JS 的原型和原型链
  92. 说说你对作用域链的理解
  93. JavaScript 原型,原型链 ? 有什么特点?
  94. 请解释什么是事件代理
  95. offsetWidth/offsetHeight, clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别
  96. 谈谈你对 AMD、CMD 的理解
  97. web 开发中会话跟踪的方法有哪些
  98. 说几条写 JavaScript 的基本规范?
  99. JavaScript 有几种类型的值?你能画一下他们的内存图吗?
  100. eval 是做什么的?
  101. js 延迟加载的方式有哪些?
  102. attribute 和 property 的区别是什么?
  103. 什么是面向对象编程及面向过程编程,它们的异同和优缺点
  104. 谈一谈你理解的函数式编程?
  105. 对原生 Javascript 了解程度
  106. Js 动画与 CSS 动画区别及相应实现
  107. 快速的让一个数组乱序
  108. prototype 和__proto__的关系是什么?
  109. UIWebView 和 JavaScript 之间是怎么交互的?
  110. IE 与火狐的事件机制有什么区别?如何阻止冒泡
  111. 在 js 中哪些会被隐式转换为 false
  112. 列举浏览器对象模型 BOM 里常用的至少 4 个对象,并列举 window 对象的常用方法至少 5 个?
  113. class.forname 的作用? 为什么要用?
  114. 外部 JS 文件出现中文字符,会出现什么问题,怎么解决?
  115. 定时器 setInterval 有一个有名函数 fn1,setInterval(fn1, 500)与 setInterval(fn1(), 500)有什么区别?
  116. 自动分号
  117. 你用过 require. js吗?它有什么特性?
  118. 如何阻止事件冒泡和默认事件?
  119. 分别阐述 split(), slice(), splice(), join()?
  120. 事件、IE 与火狐的事件机制有什么区别? 如何阻止冒泡?
  121. 内置函数(原生函数)
  122. 对象浅拷贝和深拷贝有什么区别
  123. JS 怎么实现一个类。怎么实例化这个类
  124. 如何编写高性能的 Javascript?
  125. 数组和对象有哪些原生方法,列举一下?
  126. documen.write 和 innerHTML 的区别?
  127. 让你自己设计实现一个 requireJS,你会怎么做?
  128. requireJS 的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何缓存的?)
  129. Javascript 中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
  130. 原型继承
  131. 用原生 JavaScript 的实现过什么功能吗?
  132. javascript 代码中的”use strict”; 是什么意思 ? 使用它区别是什么?
  133. 简述创建函数的几种方式
  134. window.location.search() 返回的是什么?
  135. window.location.hash 返回的是什么?
  136. window.location.reload() 作用?
  137. 为什么不能定义 1px 左右的 div 容器?
  138. BOM 对象有哪些,列举 window 对象?
  139. 简述 readonly 与 disabled 的区别
  140. 为什么扩展 javascript 内置对象不是好的做法?
  141. 什么是三元表达式?“三元”表示什么意思?
  142. 我们给一个 dom 同时绑定两个点击事件,一个用捕获,一个用冒泡,你来说下会执行几次事件,然后会先执行冒泡还是捕获
  143. 简述一下 Handlebars 的基本用法?
  144. 简述一下 Handlerbars 的对模板的基本处理流程, 如何编译的?如何缓存的?
  145. 前端 templating(Mustache, underscore, handlebars)是干嘛的, 怎么用?
  146. 知道什么是 webkit 么? 知道怎么用浏览器的各种工具来调试和 debug 代码么?
  147. 如何测试前端代码? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么(mocha, sinon, jasmin, qUnit..)?
  148. JavaScript 的循环语句有哪些?
  149. 作用域-编译期执行期以及全局局部作用域问题
  150. 如何添加 html 元素的事件,有几种方法?请列举
  151. 列举浏览器对象模型 BOM 里常用的至少 4 个对象,并列举 window 对象的常用方法至少 5 个
  152. 事件绑定的方式
  153. 事件循环
  154. 事件模型
  155. 如何自定义事件
  156. target 和 currentTarget 区别
  157. prototype 和__proto__的关系是什么
  158. 什么是原型属性?
  159. 什么是原型对象?
  160. 使用 let、var 和 const 创建变量有什么区别
  161. JSON 的了解
  162. 事件代理怎么实现?
  163. 什么是属性搜索原则?
  164. 如何避免重绘或者重排?
  165. 说下函数式编程的理解
  166. forEach,map和filter的区别(哔哩哔哩)
  167. delete 数组的 item,数组的 length 是否会 -1
  168. 给出 [‘1’, ‘3’, ‘10’].map(parseInt) 执行结果
  169. 执行上下文
  170. 怎样理解setTimeout 执行误差
  171. 数组降维
  172. 为什么for循环嵌套顺序会影响性能?
  173. 轮播图实现原理
  174. 如何设计一个轮播图组件
  175. script 引入方式
  176. 数组中的forEach和map的区别
  177. for in和for of的区别
  178. typeof 与 instanceof 区别
  179. 微任务和宏任务
  180. JavaScript 中 undefined 和 not defined 的区别
  181. 在JavaScript中创建一个真正的private方法有什么缺点?
  182. JavaScript怎么清空数组?
  183. 怎么判断一个object是否是数组(array)?
  184. 什么是 undefined x 1 ?
  185. 两种函数声明有什么区别?
  186. 什么是跨域?跨域请求资源的方法有哪些?
  187. 谈谈垃圾回收机制方式及内存管理
  188. 内存管理
  189. 开发过程中遇到的内存泄露情况,如何解决的?
  190. IE与标准浏览器对事件处理的区别?
  191. delete用法
  192. 如何删除一个cookie
  193. 用正则把yya yyb yyc变成yya5 yyb6 yyc7?
  194. 怎么判断两个json对象的内容相等?
  195. 获取一个月有多少天
  196. 关于函数的 length 属性
  197. 数组中字符串键值的处理
  198. 什么是链表?
  199. 链表的基本特征
  200. 如何查找一篇英文文章中出现频率最高的单词?
  201. 介绍 js 的基本数据类型。
  202. JavaScript 有几种类型的值?你能画一下他们的内存图吗?
  203. 什么是堆?什么是栈?它们之间有什么区别和联系?
  204. 内部属性 [[Class]] 是什么?
  205. 介绍 js 有哪些内置对象?
  206. undefined 与 undeclared 的区别?
  207. null 和 undefined 的区别?
  208. 如何获取安全的 undefined 值?
  209. 说几条写 JavaScript 的基本规范?
  210. JavaScript 原型,原型链? 有什么特点?
  211. js 获取原型的方法?
  212. 在 js 中不同进制数字的表示方式
  213. js 中整数的安全范围是多少?
  214. typeof NaN 的结果是什么?
  215. isNaN 和 Number.isNaN 函数的区别?
  216. Array 构造函数只有一个参数值时的表现?
  217. 其他值到字符串的转换规则?
  218. 其他值到数字值的转换规则?
  219. 其他值到布尔类型的值的转换规则?
  220. {} 和 [] 的 valueOf 和 toString 的结果是什么?
  221. 什么是假值对象?
  222. ~ 操作符的作用?
  223. 解析字符串中的数字和将字符串强制类型转换为数字的返回结果都是数字,它们之间的区别是什么?
  224. + 操作符什么时候用于字符串的拼接?
  225. 什么情况下会发生布尔值的隐式强制类型转换?
  226.   和 && 操作符的返回值?
  227. Symbol 值的强制类型转换?
  228. == 操作符的强制类型转换规则?
  229. 如何将字符串转化为数字,例如 ‘12. 3b’?
  230. 如何将浮点数点左边的数每三位添加一个逗号,如 12000000. 11 转化为『12, 000, 000. 11』?
  231. 常用正则表达式
  232. 生成随机数的各种方法?
  233. 如何实现数组的随机排序?
  234. javascript 创建对象的几种方式?
  235. JavaScript 继承的几种实现方式?
  236. 寄生式组合继承的实现?
  237. Javascript 的作用域链?
  238. 谈谈 This 对象的理解。
  239. eval 是做什么的?
  240. 什么是 DOM 和 BOM?
  241. 写一个通用的事件侦听器函数。
  242. 事件是什么?IE 与火狐的事件机制有什么区别? 如何阻止冒泡?
  243. 三种事件模型是什么?
  244. 事件委托是什么?
  245. [“1”, “2”, “3”].map(parseInt) 答案是多少?
  246. 什么是闭包,为什么要用它?
  247. javascript 代码中的 “use strict”; 是什么意思 ? 使用它区别是什么?
  248. 如何判断一个对象是否属于某个类?
  249. instanceof 的作用?
  250. new 操作符具体干了什么呢?如何实现?
  251. Javascript 中,有一个函数,执行时对象查找时,永远不会去查找原型,这个函数是?
  252. 对于 JSON 的了解?
  253. `[].forEach.call($$(“*”), function(a){a.style.outline=”1px solid #”+(~~
  254. js 延迟加载的方式有哪些?
  255. Ajax 是什么? 如何创建一个 Ajax?
  256. 谈一谈浏览器的缓存机制?
  257. Ajax 解决浏览器缓存问题?
  258. 同步和异步的区别?
  259. 什么是浏览器的同源政策?
  260. 如何解决跨域问题?
  261. 服务器代理转发时,该如何处理 cookie?
  262. 简单谈一下 cookie ?
  263. 模块化开发怎么做?
  264. js 的几种模块规范?
  265. AMD 和 CMD 规范的区别?
  266. ES6 模块与 CommonJS 模块、AMD、CMD 的差异。
  267. requireJS 的核心原理是什么?(如何动态加载的?如何避免多次加载的?如何 缓存的?)
  268. JS 模块加载器的轮子怎么造,也就是如何实现一个模块加载器?
  269. ECMAScript6 怎么写 class,为什么会出现 class 这种东西?
  270. documen.write 和 innerHTML 的区别?
  271. DOM 操作——怎样添加、移除、移动、复制、创建和查找节点?
  272. innerHTML 与 outerHTML 的区别?
  273. .call() 和 .apply() 的区别?
  274. JavaScript 类数组对象的定义?
  275. 数组和对象有哪些原生方法,列举一下?
  276. 数组的 fill 方法?
  277. [, , , ] 的长度?
  278. JavaScript 中的作用域与变量声明提升?
  279. 如何编写高性能的 Javascript ?
  280. 简单介绍一下 V8 引擎的垃圾回收机制
  281. 哪些操作会造成内存泄漏?
  282. 需求:实现一个页面操作不会整页刷新的网站,并且能在浏览器前进、后退时正确响应。给出你的技术
  283. 如何判断当前脚本运行在浏览器还是 node 环境中?(阿里)
  284. 把 script 标签放在页面的最底部的 body 封闭之前和封闭之后有什么区别?浏览器会如何解析它
  285. 移动端的点击事件的有延迟,时间是多久,为什么会有? 怎么解决这个延时?
  286. 什么是“前端路由”?什么时候适合使用“前端路由”?“前端路由”有哪些优点和缺点?
  287. 如何测试前端代码么? 知道 BDD, TDD, Unit Test 么? 知道怎么测试你的前端工程么
  288. 检测浏览器版本版本有哪些方式?
  289. 什么是 Polyfill ?
  290. 使用 JS 实现获取文件扩展名?
  291. 介绍一下 js 的节流与防抖?
  292. Object.is() 与原来的比较操作符 “===”、“==” 的区别?
  293. escape, encodeURI, encodeURIComponent 有什么区别?
  294. Unicode 和 UTF-8 之间的关系?
  295. js 的事件循环是什么?
  296. js 中的深浅拷贝实现?
  297. 手写 call、apply 及 bind 函数
  298. 函数柯里化的实现
  299. 为什么 0. 1 + 0. 2 != 0. 3?如何解决这个问题?
  300. 原码、反码和补码的介绍
  301. toPrecision 和 toFixed 和 Math.round 的区别?
  302. 什么是 XSS 攻击?如何防范 XSS 攻击?
  303. 什么是 CSP?
  304. 什么是 CSRF 攻击?如何防范 CSRF 攻击?
  305. 什么是 Samesite Cookie 属性?
  306. 什么是点击劫持?如何防范点击劫持?
  307. SQL 注入攻击?
  308. 什么是 MVVM?比之 MVC 有什么区别?什么又是 MVP ?
  309. 什么是 requestAnimationFrame ?
  310. 谈谈你对 webpack 的看法
  311. offsetWidth/offsetHeight, clientWidth/clientHeight 与 scrollWidth/scrollHeight 的区别?
  312. js 语句末尾分号是否可以省略?
  313. Object.assign()
  314. Math.ceil 和 Math.floor
  315. js for 循环注意点
  316. 一个列表,假设有 100000 个数据,这个该怎么办?
  317. 谈一谈你理解的函数式编程?
  318. 异步编程的实现方式?
  319. Js 动画与 CSS 动画区别及相应实现
  320. get 请求传参长度的误区
  321. URL 和 URI 的区别?
  322. get 和 post 请求在缓存方面的区别
  323. 图片的懒加载和预加载
  324. mouseover 和 mouseenter 的区别?
  325. js 拖拽功能的实现
  326. 为什么使用 setTimeout 实现 setInterval?怎么模拟?
  327. let 和 const 的注意点?
  328. 什么是 rest 参数?
  329. 什么是尾调用,使用尾调用有什么好处?
  330. Symbol 类型的注意点?
  331. Set 和 WeakSet 结构?
  332. Map 和 WeakMap 结构?
  333. 什么是 Proxy ?
  334. Reflect 对象创建目的?
  335. require 模块引入的查找方式?
  336. 什么是 Promise 对象,什么是 Promises/A+ 规范?
  337. 手写一个 Promise
  338. 如何检测浏览器所支持的最小字体大小?
  339. 怎么做 JS 代码 Error 统计?
  340. 单例模式模式是什么?
  341. 策略模式是什么?
  342. 代理模式是什么?
  343. 中介者模式是什么?
  344. 适配器模式是什么?
  345. 观察者模式和发布订阅模式有什么不同?
  346. 开发中常用的几种 Content-Type ?
  347. 如何封装一个 javascript 的类型判断函数?
  348. 如何判断一个对象是否为空对象?
  349. 使用闭包实现每隔一秒打印 1, 2, 3, 4
  350. 手写一个 jsonp
  351. 手写一个观察者模式?
  352. EventEmitter 实现
  353. 一道常被人轻视的前端 JS 面试题
  354. 如何确定页面的可用性时间,什么是 Performance API?
  355. js 中的命名规则
  356. js 中倒计时的纠偏实现?
  357. 进程间通信的方式?
  358. Js中prototype、[[prototype]]和__proto__的区别和用法
  359. 说下CommonJS、AMD、CMD三种规范
  360. 微信的JSSDK都有哪些内容?如何接入?
  361. H5页面在微信中如何禁止分享给好友和朋友圈?
  362. 什么是本地存储的有效期?
  363. ECMAScript 和 JavaScript 的关系
  364. ES6 与 ECMAScript 2015 的关系
  365. prototype、__proto__与constructor的关系
  366. setTimeout和setImmediate以及process.nextTick的区别
  367. JS运行机制(Event Loop)