




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、很多面試題是我自己面試BAT親身經(jīng)歷碰到的。整理分享出來(lái)希望更多的前端er共同進(jìn)步吧,不僅適用于求職者,對(duì)于鞏固復(fù)習(xí)前端基礎(chǔ)更是大有裨益。而更多的題目是我一路以來(lái)收集的,也有往年的,答案不確保一定正確,如有錯(cuò)誤或有更好的解法,還請(qǐng)斧正。前面幾題是會(huì)很基礎(chǔ),越下越有深度。附上第二篇:BAT及各大互聯(lián)網(wǎng)公司2014前端筆試面試題Html,Css篇前面幾題是會(huì)很基礎(chǔ),越下越有深度。初級(jí)Javascript:1.JavaScript是一門什么樣的語(yǔ)言,它有哪些特點(diǎn)?沒(méi)有標(biāo)準(zhǔn)答案。2.JavaScript的數(shù)據(jù)類型都有什么?基本數(shù)據(jù)類型:String,boolean,Number,Undefined,&
2、#160;Null引用數(shù)據(jù)類型:Object(Array,Date,RegExp,Function)那么問(wèn)題來(lái)了,如何判斷某變量是否為數(shù)組數(shù)據(jù)類型?· 方法一.判斷其是否具有“數(shù)組性質(zhì)”,如slice()方法。可自己給該變量定義slice方法,故有時(shí)會(huì)失效· 方法二.obj instanceof Array 在某些IE版本中不正確· 方法三.方法一二皆有漏洞,在ECMA Script5中定義了新方法Array.isArray(), 保證其兼容性,最好的方法如下:123456if(typeof Array.isArray="undefined&q
3、uot;) Array.isArray = function(arg) return Ototype.toString.call(arg)="object Array" 3.已知ID的Input輸入框,希望獲取這個(gè)輸入框的輸入值,怎么做?(不使用第三方框架)1document.getElementById(“ID”).value4.希望獲取到頁(yè)面中所有的checkbox怎么
4、做?(不使用第三方框架)12345678var domList = document.getElementsByTagName(input)var checkBoxList = ;var len = domList.length;/緩存到局部變量while (len-) /使用while的效率會(huì)比f(wàn)or循環(huán)更高if (domListlen.type = checkbox) checkBoxList.push(domListlen);5.設(shè)置一個(gè)已知ID的DIV的html內(nèi)容為xxxx,字體顏色設(shè)置
5、為黑色(不使用第三方框架)123var dom = document.getElementById(“ID”);dom.innerHTML = “xxxx”dom.style.color = “#000”6.當(dāng)一個(gè)DOM節(jié)點(diǎn)被點(diǎn)擊時(shí)候,我們希望能夠執(zhí)行一個(gè)函數(shù),應(yīng)該怎么做?· 直接在DOM里綁定事件:<div onclick=”test()”></div>· 在JS里通過(guò)onclick綁定:xxx.onclick = test· 通過(guò)事件添加進(jìn)行綁定:addEven
6、tListener(xxx, click, test)那么問(wèn)題來(lái)了,Javascript的事件流模型都有什么?· “事件冒泡”:事件開(kāi)始由最具體的元素接受,然后逐級(jí)向上傳播· “事件捕捉”:事件由最不具體的節(jié)點(diǎn)先接收,然后逐級(jí)向下,一直到最具體的· “DOM事件流”:三個(gè)階段:事件捕捉,目標(biāo)階段,事件冒泡7.什么是Ajax和JSON,它們的優(yōu)缺點(diǎn)。Ajax是異步JavaScript和XML,用于在Web頁(yè)面中實(shí)現(xiàn)異步數(shù)據(jù)交互。優(yōu)點(diǎn):· 可以使得頁(yè)面不重載全部?jī)?nèi)容的情況下加載局部?jī)?nèi)容,降低數(shù)據(jù)傳輸量· 避免用戶不斷刷新或者跳轉(zhuǎn)
7、頁(yè)面,提高用戶體驗(yàn)缺點(diǎn):· 對(duì)搜索引擎不友好(· 要實(shí)現(xiàn)ajax下的前后退功能成本較大· 可能造成請(qǐng)求數(shù)的增加· 跨域問(wèn)題限制JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,ECMA的一個(gè)子集優(yōu)點(diǎn):輕量級(jí)、易于人的閱讀和編寫,便于機(jī)器(JavaScript)解析,支持復(fù)合數(shù)據(jù)類型(數(shù)組、對(duì)象、字符串、數(shù)字) 8.看下列代碼輸出為何?解釋原因。123var a;alert(typeof a); / undefinedalert(b); / 報(bào)錯(cuò)解釋:Undefined是一個(gè)只有一個(gè)值的數(shù)據(jù)類型,這個(gè)值就是“undefined”,在使用va
8、r聲明變量但并未對(duì)其賦值進(jìn)行初始化時(shí),這個(gè)變量的值就是undefined。而b由于未聲明將報(bào)錯(cuò)。注意未申明的變量和聲明了未賦值的是不一樣的。 9.看下列代碼,輸出什么?解釋原因。12var a = null;alert(typeof a); /object解釋:null是一個(gè)只有一個(gè)值的數(shù)據(jù)類型,這個(gè)值就是null。表示一個(gè)空指針對(duì)象,所以用typeof檢測(cè)會(huì)返回”object”。 10.看下列代碼,輸出什么?解釋原因。123456789var undefined;undefined = null; / true1 = true; &
9、#160; / true2 = true; / false0 = false; / true0 = '' / trueNaN = NaN; / false = false; / true = !; / true· undefined與null相等,但不恒等(=)· 一個(gè)是number一個(gè)是string時(shí),會(huì)嘗試將string轉(zhuǎn)換為number· 嘗試將boolean轉(zhuǎn)換為number,0或1· 嘗試將Object轉(zhuǎn)換成n
10、umber或string,取決于另外一個(gè)對(duì)比量的類型· 所以,對(duì)于0、空字符串的判斷,建議使用 “=” ?!?”會(huì)先判斷兩邊的值類型,類型不匹配時(shí)為false。那么問(wèn)題來(lái)了,看下面的代碼,輸出什么,foo的值為什么?123var foo = "11"+2-"1"console.log(foo);console.log(typeof foo);執(zhí)行完后foo的值為111,foo的類型為String。 11.看代碼給答案。12345var a = new Object();a.v
11、alue = 1;b = a;b.value = 2;alert(a.value);答案:2(考察引用數(shù)據(jù)類型細(xì)節(jié))12.已知數(shù)組var stringArray = “This”, “is”, “Baidu”, “Campus”,Alert出”This is Baidu Campus”。答案:alert(stringArray.join(“”)已知有字符串foo=”get-element-by-id”,寫一個(gè)function將其轉(zhuǎn)化成駝峰表示法”getElementById”。12345678functi
12、on combo(msg) var arr=msg.split("-"); for(var i=1;i<arr.length;i+) arri=arri.charAt(0).toUpperCase()+arri.substr(1,arri.length-1); m
13、sg=arr.join(""); return msg;(考察基礎(chǔ)API)13.var numberArray = 3,6,2,4,1,5; (考察基礎(chǔ)API)1) 實(shí)現(xiàn)對(duì)該數(shù)組的倒排,輸出5,1,4,2,6,32) 實(shí)現(xiàn)對(duì)該數(shù)組的降序排列,輸出6,5,4,3,2,112345678function combo(msg) var arr=msg.split("-");
14、60; for(var i=1;i<arr.length;i+) arri=arri.charAt(0).toUpperCase()+arri.substr(1,arri.length-1); msg=arr.join(""); return msg;14.輸出今天的日期,以YYYY-MM-DD的
15、方式,比如今天是2014年9月26日,則輸出2014-09-261234567891011var d = new Date();/ 獲取年,getFullYear()返回4位的數(shù)字var year = d.getFullYear();/ 獲取月,月份比較特殊,0是1月,11是12月var month = d.getMonth() + 1;/ 變成兩位month = month < 10 ? '0' + month : month;/ 獲取日var day = d.getDate();day = day <
16、10 ? '0' + day : day;alert(year + '-' + month + '-' + day);15.將字符串”<tr><td>$id</td><td>$name</td></tr>”中的$id替換成10,$name替換成Tony (使用正則表達(dá)式)答案:”<tr><td>$id</td><td>$id_$name</td></tr>”.replace(
17、/$id/g, 10).replace(/$name/g, Tony);16.為了保證頁(yè)面輸出安全,我們經(jīng)常需要對(duì)一些特殊的字符進(jìn)行轉(zhuǎn)義,請(qǐng)寫一個(gè)函數(shù)escapeHtml,將<, >, &, “進(jìn)行轉(zhuǎn)義1234567891011121314function escapeHtml(str) return str.replace(/<>”&/g, function(match) switch (match)
18、 case “<”: return “<”;
19、160; case “>”: return “>”;
20、0; case “&”: return “&”;
21、0; case “”: return “"”; );17.foo = foo|bar ,
22、這行代碼是什么意思?為什么要這樣寫?答案:if(!foo) foo = bar; /如果foo存在,值不變,否則把bar的值賦給foo。短路表達(dá)式:作為”&&”和”|”操作符的操作數(shù)表達(dá)式,這些表達(dá)式在進(jìn)行求值時(shí),只要最終的結(jié)果已經(jīng)可以確定是真或假,求值過(guò)程便告終止,這稱之為短路求值。18.看下列代碼,將會(huì)輸出什么?(變量聲明提升)123456var foo = 1;function() console.log(foo); var
23、0;foo = 2; console.log(foo);答案:輸出undefined 和 2。上面代碼相當(dāng)于:1234567var foo = 1;function() var foo; console.log(foo); /undefined foo = 2; console.log(foo); / 2; 函數(shù)聲明與變量聲
24、明會(huì)被JavaScript引擎隱式地提升到當(dāng)前作用域的頂部,但是只提升名稱不會(huì)提升賦值部分。19.用js實(shí)現(xiàn)隨機(jī)選取10100之間的10個(gè)數(shù)字,存入一個(gè)數(shù)組,并排序。123456789var iArray = ; funtion getRandom(istart, iend) var iChoice = istart - iend +1; return Math.floor(Ma
25、th.random() * iChoice + istart;for(var i=0; i<10; i+) iArray.push(getRandom(10,100);iArray.sort();20.把兩個(gè)數(shù)組合并,并刪除第二個(gè)元素。1234var array1 = 'a','b','c'var bArray = 'd','e','f'var cArray =
26、 array1.concat(bArray);cArray.splice(1,1);21.怎樣添加、移除、移動(dòng)、復(fù)制、創(chuàng)建和查找節(jié)點(diǎn)(原生JS,實(shí)在基礎(chǔ),沒(méi)細(xì)寫每一步)1)創(chuàng)建新節(jié)點(diǎn)createDocumentFragment() /創(chuàng)建一個(gè)DOM片段createElement() /創(chuàng)建一個(gè)具體的元素createTextNode() /創(chuàng)建一個(gè)文本節(jié)點(diǎn)2)添加、移除、替換、插入appendChild() /添加
27、removeChild() /移除replaceChild() /替換insertBefore() /插入3)查找getElementsByTagName() /通過(guò)標(biāo)簽名稱getElementsByName() /通過(guò)元素的Name屬性的值getElementById()
28、 /通過(guò)元素Id,唯一性22.有這樣一個(gè)URL:答案:123456789function serilizeUrl(url) var result = ; url = url.split("?")1; var map = url.split("&"); f
29、or(var i = 0, len = map.length; i < len; i+) result<script>jQuery(function($) $("#google-maps-1").gMap(controls: false,scrollwheel: false,markers: address: "",icon: image: " 32, 32,iconanchor: 16,27,infowindowanch
30、or: 16, 27,address: "",zoom: 15,icon: image: " 32, 32,iconanchor: 16,27,infowindowanchor: 16, 27););</script><div id="google-maps-1" class="google-maps" style="width: 100%; height: 200px;"></div>.split("=")0 = mapi.sp
31、lit("=")1; return result;23.正則表達(dá)式構(gòu)造函數(shù)var reg=new RegExp(“xxx”)與正則表達(dá)字面量var reg=/有什么不同?匹配郵箱的正則表達(dá)式?答案:當(dāng)使用RegExp()構(gòu)造函數(shù)的時(shí)候,不僅需要轉(zhuǎn)義引號(hào)(即”表示”),并且還需要雙反斜杠(即表示一個(gè))。使用正則表達(dá)字面量的效率更高。 郵箱的正則匹配:1var regMail = /(a-zA-Z0-9_-)+(a-zA-Z0-9_-)+(.a-zA-Z0
32、-9_-2,3)1,2)$/;24.看下面代碼,給出輸出結(jié)果。12345for(var i=1;i<=3;i+) setTimeout(function() console.log(i); ,0); ;答案:4 4 4。原因:Javascript事件處理器在線程空閑之前不會(huì)運(yùn)行。追問(wèn),如何讓上述代碼輸出1 2 3?123456789for(var i=1;i<=3;i+)
33、60;setTimeout(function(a) /改成立即執(zhí)行函數(shù) console.log(a); )(i),0); ; 1 /輸出2325.寫一個(gè)function,清除字符串前后的空格。(兼容所有瀏覽器)使用自帶接口trim(),考慮兼容性:123456789if (!Str
34、totype.trim) Stotype.trim = function() return this.replace(/s+/, "").replace(/s+$/,""); / test the function var str = " tn test string ".trim(); alert(str = "test string"); / alerts "true"26.Javascrip
35、t中callee和caller的作用?答案:caller是返回一個(gè)對(duì)函數(shù)的引用,該函數(shù)調(diào)用了當(dāng)前函數(shù);callee是返回正在被執(zhí)行的function函數(shù),也就是所指定的function對(duì)象的正文。那么問(wèn)題來(lái)了?如果一對(duì)兔子每月生一對(duì)兔子;一對(duì)新生兔,從第二個(gè)月起就開(kāi)始生兔子;假定每對(duì)兔子都是一雌一雄,試問(wèn)一對(duì)兔子,第n個(gè)月能繁殖成多少對(duì)兔子?(使用callee完成)12345678910111213141516var result=;function fn(n) /典型的斐波那契數(shù)列 if(n=1)
36、60; return 1; else if(n=2) return 1; else if(resultn)
37、60; return resultn; else /argument.callee()表示fn()
38、60; resultn=arguments.callee(n-1)+arguments.callee(n-2); return resultn; 中級(jí)Javascript:1.實(shí)現(xiàn)一個(gè)函數(shù)clone,可以對(duì)JavaScrip
39、t中的5種主要的數(shù)據(jù)類型(包括Number、String、Object、Array、Boolean)進(jìn)行值復(fù)制· 考察點(diǎn)1:對(duì)于基本數(shù)據(jù)類型和引用數(shù)據(jù)類型在內(nèi)存中存放的是值還是指針這一區(qū)別是否清楚· 考察點(diǎn)2:是否知道如何判斷一個(gè)變量是什么類型的· 考察點(diǎn)3:遞歸算法的設(shè)計(jì)12345678910111213141516171819202122232425262728293031323334/ 方法一:Ototype.clone = function()
40、var o = this.constructor = Array ? : ; for(var e in this) oe = typeof thise = "object" ? thise.clone() : thise;
41、 return o; /方法二: /* * 克隆一個(gè)對(duì)象 * param Obj * returns */ fun
42、ction clone(Obj) var buf; if (Obj instanceof Array) buf = ;
43、60; /創(chuàng)建一個(gè)空的數(shù)組 var i = Obj.length; while
44、0;(i-) bufi = clone(Obji); &
45、#160;return buf; else if (Obj instanceof Object) buf = ;
46、160; /創(chuàng)建一個(gè)空對(duì)象 for (var k in Obj) /為這個(gè)對(duì)象添加新的屬性
47、0; bufk = clone(Objk); return buf; else
48、0; /普通變量直接賦值 return Obj; &
49、#160; 2.如何消除一個(gè)數(shù)組里面重復(fù)的元素?1234567891011121314151617181920var arr=1,2,3,3,4,4,5,5,6,1,9,3,25,4; function deRepeat() var newArr=;
50、 var obj=; var index=0; var l=arr.length; &
51、#160; for(var i=0;i<l;i+) if(objarri=undefined) &
52、#160; objarri=1; newArrindex+=arri;
53、60; else if(objarri=1) continue; &
54、#160; return newArr; var newArr2=deRepeat(arr);
55、; alert(newArr2); /輸出1,2,3,4,5,6,9,253.小賢是一條可愛(ài)的小狗(Dog),它的叫聲很好聽(tīng)(wow),每次看到主人的時(shí)候就會(huì)乖乖叫一聲(yelp)。從這段描述可以得到以下對(duì)象:12345678function Dog() this.wow = function()
56、160; alert(Wow); this.yelp = function() this.wow(); 小芒和小賢一樣,原來(lái)也是一條可愛(ài)的小狗,可是突然有一天瘋了(MadDo
57、g),一看到人就會(huì)每隔半秒叫一聲(wow)地不停叫喚(yelp)。請(qǐng)根據(jù)描述,按示例的形式用代碼來(lái)實(shí)。(繼承,原型,setInterval)答案:123456789101112131415function MadDog() this.yelp = function() var self = this;
58、 setInterval(function() self.wow(); , 500);
59、 MadDtotype = new Dog(); /for testvar dog = new Dog();dog.yelp();var madDog = new MadDog();madDog.yelp();4.下面這個(gè)ul,如何點(diǎn)擊每一列的時(shí)候alert其index?(閉包)12345<ul id=”test”><li>這是第一條</li
60、><li>這是第二條</li><li>這是第三條</li></ul>答案:123456789101112131415161718192021/ 方法一:var lis=document.getElementById('2223').getElementsByTagName('li');for(var i=0;i<3;i+) lisi.index=i; lisi.onclick=fu
61、nction() alert(this.index); /方法二:var lis=document.getElementById('2223').getElementsByTagName('li');for(var i=0;i<3;i+) lisi.index=i; lisi.onclick=(f
62、unction(a) return function() alert(a); )(i);5.編寫一個(gè)JavaScript函數(shù),輸入指定類型的選擇器(僅需支持id,class,tagName三種簡(jiǎn)單CSS選擇器,
63、無(wú)需兼容組合選擇器)可以返回匹配的DOM節(jié)點(diǎn),需考慮瀏覽器兼容性和性能。/* param selector String 傳入的CSS選擇器。* return Array*/答案:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657var query = function(selector)
64、60; var reg = /(#)?(.)?(w+)$/img; var regResult = reg.exec(selector); &
65、#160; var result = ; /如果是id選擇器 if(regResult1)
66、 if(regResult3) if(typeof document.querySelector = "function") &
67、#160; result.push(document.querySelector(regResult3);
68、160; else
69、0; result.push(document.getElementById(regResult3);
70、0; /如果是class選擇器
71、0; else if(regResult2) if(regResult3)
72、 if(typeof document.getElementsByClassName = 'function')
73、60; var doms = document.getElementsByClassName(regResult3); if(doms)
74、 result = converToArray(doms); &
75、#160; &
76、#160; /如果不支持getElementsByClassName函數(shù) else
77、60; var allDoms = document.getElementsByTagName("*") ;
78、0; for(var i = 0, len = allDoms.length; i < len; i+) if(allDomsi.classN
79、ame.search(new RegExp(regResult2) > -1) result.push(allDomsi);
80、160;
81、160;
82、160; /如果是標(biāo)簽選擇器
83、; else if(regResult3) var doms = document.getElementsByTagName(regResult3.toLowerCase();
84、; if(doms) result = converToArray(doms);
85、60; return result;
86、160; function converToArray(nodes) var array = null;
87、 try &
88、#160; array = Atotype.slice.call(nodes,0);/針對(duì)非IE瀏覽器 catch(ex)
89、0; array = new Array(); for( var i = 0 ,len =
90、 nodes.length; i < len ; i+ ) array.push(nodesi)
91、160;
92、 return array; 6.請(qǐng)?jiān)u價(jià)以下代碼并給出改進(jìn)意見(jiàn)。123456789101112if(window.addEventListener) var addListener = function(el,type,listener,useCap
93、ture) el.addEventListener(type,listener,useCapture); else if(document.all) addListener = function(el,type,listener) el.attachEvent("on"+type,function()
94、 listener.apply(el); ); 評(píng)價(jià):· 不應(yīng)該在if和else語(yǔ)句中聲明addListener函數(shù),應(yīng)該先聲明;· 不需要使用window.addEventListener或document.all來(lái)進(jìn)行檢測(cè)瀏覽器,應(yīng)該使用能力檢測(cè);· 由于attachEvent在IE中有this指向問(wèn)題,所以調(diào)用它時(shí)需要處理一下改進(jìn)如下:1
95、2345678910111213function addEvent(elem, type, handler)if(elem.addEventListener)elem.addEventListener(type, handler, false);else if(elem.attachEvent)elem'temp' + type + handler = handler;elemtype + handler = function()elem'temp' + type + handler.apply(elem);elem.at
96、tachEvent('on' + type, elemtype + handler); elseelem'on' + type = handler;7.給String對(duì)象添加一個(gè)方法,傳入一個(gè)string類型的參數(shù),然后將string的每個(gè)字符間價(jià)格空格返回,例如:addSpace(“hello world”) / -> h e l l o w o r l d123Stotype.spacify = function()
97、60;return this.split('').join(' '); 接著上述問(wèn)題答案提問(wèn),1)直接在對(duì)象的原型上添加方法是否安全?尤其是在Object對(duì)象上。(這個(gè)我沒(méi)能答出?希望知道的說(shuō)一下。)2)函數(shù)聲明與函數(shù)表達(dá)式的區(qū)別?答案:在js中,解析器在向執(zhí)行環(huán)境中加載數(shù)據(jù)時(shí),對(duì)函數(shù)聲明和函數(shù)表達(dá)式并非是一視同仁的,解析器會(huì)率先讀取函數(shù)聲明,并使其在執(zhí)行任何代碼之前可用(可以訪問(wèn)),至于函數(shù)表達(dá)式,則必須等到解析器執(zhí)行到它所在的代碼行,才會(huì)真正被解析執(zhí)行。8.定義一個(gè)log方法,讓它可以代理console
98、.log的方法??尚械姆椒ㄒ唬?2345function log(msg) console.log(msg); log("hello world!") / hello world!如果要傳入多個(gè)參數(shù)呢?顯然上面的方法不能滿足要求,所以更好的方法是:123function log() console.log.apply(console, arguments);到此,追問(wèn)apply和call方法的異同。答案:對(duì)于apply和call兩者在作用上是相同的,即是
99、調(diào)用一個(gè)對(duì)象的一個(gè)方法,以另一個(gè)對(duì)象替換當(dāng)前對(duì)象。將一個(gè)函數(shù)的對(duì)象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對(duì)象。但兩者在參數(shù)上有區(qū)別的。對(duì)于第一個(gè)參數(shù)意義都一樣,但對(duì)第二個(gè)參數(shù): apply傳入的是一個(gè)參數(shù)數(shù)組,也就是將多個(gè)參數(shù)組合成為一個(gè)數(shù)組傳入,而call則作為call的參數(shù)傳入(從第二個(gè)參數(shù)開(kāi)始)。 如 func.call(func1,var1,var2,var3)對(duì)應(yīng)的apply寫法為:func.apply(func1,var1,var2,var3) 。9.在Javascript中什么是偽數(shù)組?如何將偽數(shù)組轉(zhuǎn)化為標(biāo)準(zhǔn)數(shù)組?答案:偽數(shù)組(類數(shù)組):無(wú)法直
100、接調(diào)用數(shù)組方法或期望length屬性有什么特殊的行為,但仍可以對(duì)真正數(shù)組遍歷方法來(lái)遍歷它們。典型的是函數(shù)的argument參數(shù),還有像調(diào)用getElementsByTagName,document.childNodes之類的,它們都返回NodeList對(duì)象都屬于偽數(shù)組??梢允褂肁totype.slice.call(fakeArray)將數(shù)組轉(zhuǎn)化為真正的Array對(duì)象。假設(shè)接第八題題干,我們要給每個(gè)log方法添加一個(gè)”(app)”前綴,比如hello world! ->(app)hello world!。方法如下:123456function log()
101、; var args = Atotype.slice.call(arguments); /為了使用unshift數(shù)組方法,將argument轉(zhuǎn)化為真正的數(shù)組 args.unshift('(app)'); console.log.apply(console, args); 10.對(duì)作用域上下
102、文和this的理解,看下列代碼:123456789101112var User = count: 1, getCount: function() return this.count; console.log(User.getCount(); / what? var func = User.getCount;console.log(func(); / what?問(wèn)兩處console輸出什么?為什么?答案是1和undefined。func是在winodw的上下文中被執(zhí)行的,所以會(huì)訪問(wèn)不到count屬性。繼續(xù)追問(wèn),那么如何確保Uesr總是能訪問(wèn)到func的上下文,即正確返回1。正確的方法是使用Ft
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 讀書(shū)社團(tuán)書(shū)籍分享與討論計(jì)劃
- 2025-2030中國(guó)鍍鈀銅線行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)鋁鎳催化劑行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)鋁冷板行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)鐵路電池行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)鎢金屬粉行業(yè)發(fā)展?fàn)顩r與前景態(tài)勢(shì)研究研究報(bào)告
- 2025-2030中國(guó)鋼制復(fù)合井式水箱行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)金屬表面絕緣板行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2025-2030中國(guó)重油行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025-2030中國(guó)追蹤發(fā)電機(jī)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略研究報(bào)告
- 2023年中國(guó)勞動(dòng)關(guān)系學(xué)院招聘筆試備考題庫(kù)及答案解析
- 創(chuàng)造性思維與創(chuàng)新方法Triz版知到章節(jié)答案智慧樹(shù)2023年大連理工大學(xué)
- 英語(yǔ)四級(jí)仔細(xì)閱讀練習(xí)與答案解析
- 《產(chǎn)業(yè)基礎(chǔ)創(chuàng)新發(fā)展目錄(2021年版)》(8.5發(fā)布)
- 排水溝土方開(kāi)挖施工方案
- CAD教程CAD基礎(chǔ)教程自學(xué)入門教程課件
- 技術(shù)合同認(rèn)定登記培訓(xùn)課件
- 停水停電時(shí)的應(yīng)急預(yù)案及處理流程
- 電商部運(yùn)營(yíng)助理月度績(jī)效考核表
- DB61∕T 1230-2019 人民防空工程防護(hù)設(shè)備安裝技術(shù)規(guī)程 第1部分:人防門
- 第12課送你一個(gè)書(shū)簽
評(píng)論
0/150
提交評(píng)論