JS 相关问题:
- 请解释事件代理 (event delegation)。
- 请解释 JavaScript 中
this
是如何工作的。
- 请解释原型继承 (prototypal inheritance) 的原理。
- 你怎么看 AMD vs. CommonJS?
- 请解释为什么接下来这段代码不是 IIFE (立即调用的函数表达式):
function foo(){ }();
.
- 描述以下变量的区别:
null
,undefined
或 undeclared
?
- 什么是闭包 (closure),如何使用它,为什么要使用它?
- 请举出一个匿名函数的典型用例?
- 你是如何组织自己的代码?是使用模块模式,还是使用经典继承的方法?
- 请指出 JavaScript 宿主对象 (host objects) 和原生对象 (native objects) 的区别?
- 请指出以下代码的区别:
function Person(){}
、var person = Person()
、var person = new Person()
?
.call
和 .apply
的区别是什么?
- 请解释
Function.prototype.bind
?
- 在什么时候你会使用
document.write()
?
- 请指出浏览器特性检测,特性推断和浏览器 UA 字符串嗅探的区别?
- 请尽可能详尽的解释 Ajax 的工作原理。
- 使用 Ajax 都有哪些优劣?
- 请解释 JSONP 的工作原理,以及它为什么不是真正的 Ajax。
- 你使用过 JavaScript 模板系统吗?
- 请解释变量声明提升 (hoisting)。
- 请描述事件冒泡机制 (event bubbling)。
- "attribute" 和 "property" 的区别是什么?
- 为什么扩展 JavaScript 内置对象不是好的做法?
- 请指出 document load 和 document DOMContentLoaded 两个事件的区别。
==
和 ===
有什么不同?
- 请解释 JavaScript 的同源策略 (same-origin policy)。
- 如何实现下列代码:
[1,2,3,4,5].duplicator(); // [1,2,3,4,5,1,2,3,4,5]
- 什么是三元表达式 (Ternary expression)?“三元 (Ternary)” 表示什么意思?
- 什么是
"use strict";
? 使用它的好处和坏处分别是什么?
- 请实现一个遍历至
100
的 for loop 循环,在能被 3
整除时输出 "fizz",在能被 5
整除时输出 "buzz",在能同时被 3
和 5
整除时输出 "fizzbuzz"。
- 为何通常会认为保留网站现有的全局作用域 (global scope) 不去改变它,是较好的选择?
- 为何你会使用
load
之类的事件 (event)?此事件有缺点吗?你是否知道其他替代品,以及为何使用它们?
- 请解释什么是单页应用 (single page app), 以及如何使其对搜索引擎友好 (SEO-friendly)。
- 你使用过 Promises 及其 polyfills 吗? 请写出 Promise 的基本用法(ES6)。
- 使用 Promises 而非回调 (callbacks) 优缺点是什么?
- 使用一种可以编译成 JavaScript 的语言来写 JavaScript 代码有哪些优缺点?
- 你使用哪些工具和技术来调试 JavaScript 代码?
- 你会使用怎样的语言结构来遍历对象属性 (object properties) 和数组内容?
- 请解释可变 (mutable) 和不变 (immutable) 对象的区别。
- 请举出 JavaScript 中一个不变性对象 (immutable object) 的例子?
- 不变性 (immutability) 有哪些优缺点?
- 如何用你自己的代码来实现不变性 (immutability)?
- 请解释同步 (synchronous) 和异步 (asynchronous) 函数的区别。
- 什么是事件循环 (event loop)?
- 请问调用栈 (call stack) 和任务队列 (task queue) 的区别是什么?
- 解释
function foo() {}
与 var foo = function() {}
用法的区别 学习web前端 http://www.zhihaijiangku.com/