//請(qǐng)實(shí)現(xiàn)一個(gè)遍歷至 100 的 for loop 循環(huán)东涡,
//在能被 3 整除時(shí)輸出 "fizz"芜壁,在能被 5 整除時(shí)輸出 "buzz"舌狗,
//在能同時(shí)被 3 和 5 整除時(shí)輸出 "fizzbuzz"劲厌。
for (var i = 1; i <= 30; i++) {
if (i % 3 === 0) {
if (i % 5 === 0) {
alert('fizzbuzz' + i);
continue;
}
alert('fizz' + i);
continue;
} else if (i % 5 === 0) {
if (i % 3 === 0) {
alert('fizzbuzz' + i);
continue;
}
alert('buzz' + i);
continue;
}
}
// 問(wèn)題:如何實(shí)現(xiàn)以下函數(shù)?
// add(2, 5); // 7
// add(2)(5); // 7
function add(a, b) {
return a + b;
}
add(2, 5);
function add(a) {
return function(b) {
return a + b;
}
}
add(2)(5);
// 問(wèn)題:下面的語(yǔ)句的返回值是什么米辐?"i'm a lasagna hog".split("").reverse().join("");
"goh angasal a m'i"
// 問(wèn)題:window.foo的值是什么洪己?
(window.foo || (window.foo = "bar")); // 'bar'
// 問(wèn)題:下面兩個(gè) alert 的結(jié)果是什么洽故?
var foo = "Hello";
(function() {
var bar = " World";
alert(foo + bar);
})();
alert(foo + bar);
'Hello World'
ReferenceError: bar is not defined(…)
// 問(wèn)題:foo.x的值是什么届良?
var foo = {
n: 1
};
var bar = foo;
foo.x = foo = {
n: 2
};
Object {
n: 2
}
// 問(wèn)題:下面代碼的輸出是什么笆凌?
console.log('one');
setTimeout(function() {
console.log('two');
}, 0);
console.log('three');
// 'one' 'three' 'two'
// 事件代理
// 事件代理根據(jù)事件冒泡原理機(jī)制通過(guò)將事件添加到父節(jié)點(diǎn)觸發(fā)函數(shù)
//
< ul id = "parent-list" >
< li id = "post-1" > Item 1 < /li> < li id = "post-2" > Item 2 < /li> < li id = "post-3" > Item 3 < /li> < li id = "post-4" > Item 4 < /li> < li id = "post-5" > Item 5 < /li> < li id = "post-6" > Item 6 < /li> < /ul>
// 不好的做法
function addListeners4Li(liNode) {
liNode.onclick = function clickHandler() {...
};
liNode.onmouseover = function mouseOverHandler() {...
}
}
window.onload = function() {
var ulNode = document.getElementById("parent-list");
var liNodes = ulNode.getElementByTagName("Li");
for (var i = 0, l = liNodes.length; i < l; i++) {
addListeners4Li(liNodes[i]);
}
}
// 獲取父節(jié)點(diǎn),并為它添加一個(gè)click事件
document.getElementById("parent-list").addEventListener("click", function(e) {
// 檢查事件源e.targe是否為L(zhǎng)i
if (e.target && e.target.nodeName.toUpperCase == "LI") {
// 真正的處理過(guò)程在這里
console.log("List item ", e.target.id.replace("post-"), " was clicked!");
}
});
// 原型
// 每個(gè)對(duì)象都有一個(gè)prototype屬性伙窃,prototype是指向其他對(duì)象的引用
// 原型鏈 當(dāng)試圖去引用對(duì)象的屬性時(shí)菩颖,會(huì)觸發(fā)一個(gè)‘Get’操作样漆,檢查對(duì)象是否有這個(gè)屬性为障,當(dāng)沒(méi)有找到時(shí)
// 就試圖prototype所引用的對(duì)象中找直到找到為止,這個(gè)尋找的路徑就是原型鏈
// 原型繼承
function Foo(name) {
this.name = name;
}
Foo.prototype.myName = function() {
return this.name;
}
function Bar(name, label) {
Foo.call(this, name);
this.label = label;
}
Bar.prototype = Object.create(Foo.prototype);
Bar.prototype.myLabel = function() {
return this.label;
}
var a = new Bar('Monica', 'student');
a.myName(); // 'Monica'
a.myLabel(); // 'student'
// 請(qǐng)解釋 JavaScript 中 this 是如何工作的
// 默認(rèn)綁定
var a = 2;
function foo() {
return this.a;
}
foo(); // 2
// 隱式綁定
function foo() {
return this.a;
}
var obj = {
a: 3,
foo: foo
}
obj.foo(); // 3
foo.call(obj); // 3
// 隱式丟失
var bar = obj.foo;
bar(); // 2
// new 綁定
function foo(a) {
this.a = a;
}
var bar = new foo(5);
bar.a; // 5
// 閉包
function a() {
for (var i = 0; i < 3; i++) {
setTimeout(function timer() {
console.log(i);
}, 1000);
}
}
function a() {
for (var i = 0; i < 3; i++) {
(function(j) {
setTimeout(function timer() {
console.log(j);
}, 1000);
})(i);
}
}
a();
// this 在匿名函數(shù)的執(zhí)行環(huán)境具有全局性
var name = "The Window";
var object = {
name: "My Object",
getNameFunc: function() {
return function() {
alert(window === this);
return this.name;
};
}
};
alert(object.getNameFunc()()); // "The Window"
function add() {
var i = 0;
function q() {
return i++;
}
return q;
}
var f = add();
f();
f();
function addHandlers(nodes) {
for (var i = 0; i < nodes.length; i++) {
nodes[i].onclick = function() {
alert(i);
}
}
}
function addHandlers(nodes) {
function helper(i) {
return function() {
alert(i);
}
}
for (var i = 0; i < nodes.length; i++) {
nodes[i].onclick = helper(i);
}
}
常見(jiàn)的面試題
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門纽疟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)罐韩,“玉大人,你說(shuō)我怎么就攤上這事污朽∩⒊常” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵蟆肆,是天一觀的道長(zhǎng)矾睦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)炎功,這世上最難降的妖魔是什么枚冗? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮蛇损,結(jié)果婚禮上赁温,老公的妹妹穿的比我還像新娘肛宋。我一直安慰自己,他們只是感情好束世,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布酝陈。 她就那樣靜靜地躺著,像睡著了一般毁涉。 火紅的嫁衣襯著肌膚如雪沉帮。 梳的紋絲不亂的頭發(fā)上,一...
- 那天贫堰,我揣著相機(jī)與錄音穆壕,去河邊找鬼。 笑死其屏,一個(gè)胖子當(dāng)著我的面吹牛喇勋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播偎行,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼川背,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了蛤袒?” 一聲冷哼從身側(cè)響起熄云,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妙真,沒(méi)想到半個(gè)月后缴允,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡珍德,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年练般,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锈候。...
- 正文 年R本政府宣布虑稼,位于F島的核電站琳钉,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蛛倦。R本人自食惡果不足惜歌懒,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溯壶。 院中可真熱鬧及皂,春花似錦甫男、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至碍拆,卻和暖如春若治,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背感混。 一陣腳步聲響...
- 正文 我出身青樓婆跑,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親庭呜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子滑进,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 01、您所熟悉的測(cè)試用例設(shè)計(jì)方法都有哪些疟赊?請(qǐng)分別以具體的例子來(lái)說(shuō)明這些方法在測(cè)試用例設(shè)計(jì)工作中的應(yīng)用郊供。 答:有黑盒...
- 01峡碉、您所熟悉的測(cè)試用例設(shè)計(jì)方法都有哪些近哟?請(qǐng)分別以具體的例子來(lái)說(shuō)明這些方法在測(cè)試用例設(shè)計(jì)工作中的應(yīng)用。 答:有黑盒...
- 安卓知識(shí)Git云周報(bào):http://gityuan.com/ 1鲫寄、圖片的三級(jí)緩存 http://blog.csdn...
- 1吉执、問(wèn)題 1)有哪些常見(jiàn)的meta標(biāo)簽2)文檔聲明的作用?嚴(yán)格模式和混雜模式指什么?<!doctype html>...
- 常見(jiàn)的Objective-C的數(shù)據(jù)類型:NSInteger戳玫、CGFloat、BOOL未斑、NSString咕宿、NSArr...