1.在標(biāo)準(zhǔn)的 JavaScript 中, Ajax 異步執(zhí)行調(diào)用基于下面哪一個(gè)機(jī)制才能實(shí)現(xiàn)?
Event和callback
Deferral和promise
2.下面結(jié)果為真的表達(dá)式是:
null == undefined
3.為每一個(gè)指定元素的指定事件(像click)綁定一個(gè)事件處理器函數(shù),下面哪個(gè)是用來實(shí)現(xiàn)該功能的衷畦?
bind(type)
4. this 的工作原理:
在全局范圍內(nèi)懊亡,this指向全局對(duì)象(瀏覽器下指window)
對(duì)象函數(shù)調(diào)用時(shí)署驻,this指向當(dāng)前對(duì)象
使用new實(shí)例化對(duì)象時(shí)瞧掺,this指向新創(chuàng)建的對(duì)象
5.javascript變量定義規(guī)則:
第一個(gè)字符必須是一個(gè)字母耕餐、下劃線(_)或一個(gè)美元符號(hào)($);其他字符可以是字母夸盟、下劃線蛾方、美元符號(hào)或數(shù)字像捶。
6.angularjs1指令中compile主要是做什么用的上陕?
綁定DOM
7.js對(duì)象:
JS中,可以將對(duì)象分為“內(nèi)部對(duì)象”拓春、“宿主對(duì)象”和“自定義對(duì)象”三種释簿。
(1)內(nèi)部對(duì)象
js中的內(nèi)部對(duì)象包括Array、Boolean硼莽、Date庶溶、Function、Global懂鸵、Math偏螺、Number、Object匆光、RegExp套像、String以及各種錯(cuò)誤類對(duì)象,包括Error终息、EvalError夺巩、RangeError、ReferenceError周崭、SyntaxError和TypeError柳譬。
其中Global和Math這兩個(gè)對(duì)象又被稱為“內(nèi)置對(duì)象”,這兩個(gè)對(duì)象在腳本程序初始化時(shí)被創(chuàng)建续镇,不必實(shí)例化這兩個(gè)對(duì)象美澳。
(2)宿主對(duì)象
宿主對(duì)象就是執(zhí)行JS腳本的環(huán)境提供的對(duì)象。對(duì)于嵌入到網(wǎng)頁中的JS來說,其宿主對(duì)象就是瀏覽器提供的對(duì)象制跟,所以又稱為瀏覽器對(duì)象柴墩,如IE、Firefox等瀏覽器提供的對(duì)象凫岖。不同的瀏覽器提供的宿主對(duì)象可能不同江咳,即使提供的對(duì)象相同,其實(shí)現(xiàn)方式也大相徑庭哥放!這會(huì)帶來瀏覽器兼容問題歼指,增加開發(fā)難度。
瀏覽器對(duì)象有很多甥雕,如Window和Documen踩身,Element,form社露,image挟阻,等等。
(3)自定義對(duì)象
顧名思義峭弟,就是開發(fā)人員自己定義的對(duì)象附鸽。JS允許使用自定義對(duì)象,使JS應(yīng)用及功能得到擴(kuò)充瞒瘸。
8.引入了myScript.js:
<script src="myScript.js">
解析:
<link> 和href配合 加載css坷备,hypertext reference超文本引用,頁面加載到href時(shí)不會(huì)停下來情臭。
<script>和src配合 加載script文件省撑,source資源,頁面會(huì)停下來等待資源加載完畢(并執(zhí)行完)俯在,所以一般js放在body的最下面竟秫。
9.正確定義函數(shù):
function foo() {}
10.下面哪個(gè)選項(xiàng)中的對(duì)象與瀏覽列表有關(guān):
location,history
解析:
與瀏覽列表有關(guān)的對(duì)象:history screen location Navigator
11.w3c 制定的 javascript 標(biāo)準(zhǔn)事件模型,以下正確的順序以及描述是:
事件捕獲->事件處理->事件冒泡
12.關(guān)于對(duì)變量的說法:
一般使用var key的形式聲明
若聲明而未對(duì)變量賦值跷乐,該變量的值為undefined
var carname="Volvo";var carname;順序執(zhí)行后肥败,caranme的值依然為Volvo
13.js延遲加載的方式中,只有IE瀏覽器支持的是:defer
14.只能輸入零和非零開頭的數(shù)字劈猿,正確的正則表達(dá)式是:
^(0|[1-9][0-9]*)$
15.NOSCRIPT標(biāo)簽是做什么用的拙吉?
用來定義在腳本未被執(zhí)行時(shí)的替代內(nèi)容
16.'+new Array(017)' 輸出?
NaN
17.白屏?xí)r間first paint 和可交互時(shí)間dom ready的關(guān)系是揪荣?
先觸發(fā)first paint筷黔,后觸發(fā)dom ready
18.當(dāng)一個(gè)文本框中的內(nèi)容被選中時(shí),想要執(zhí)行指定的方法時(shí)仗颈,可以使用下面哪個(gè)事件來實(shí)現(xiàn)佛舱?
select(fn)
解析:change(fn)是文本框的內(nèi)容發(fā)生變化時(shí)執(zhí)行的操作椎例。
select(fn)是文本框的內(nèi)容被選擇時(shí)執(zhí)行的操作。
bind是被選元素(class或id)添加一個(gè)或多個(gè)事件處理程序请祖,并規(guī)定事件發(fā)生時(shí)運(yùn)行的函數(shù)订歪。
19.angularjs1中的服務(wù)實(shí)質(zhì)上是:?jiǎn)卫龑?duì)象
20.以下哪些函數(shù)能讀取文件的全部?jī)?nèi)容?
file()
file_get_contents()
readfile()
21.哪些函數(shù)能用來驗(yàn)證字符串的完整性肆捕?
md5()
sha1()
crc32()
22.給網(wǎng)頁添加javascript的方式有:
使用script標(biāo)簽刷晋,將javascript代碼寫到<script></script>之間
添加外部javascript文件
使用行內(nèi)javascript
23.在ECMAScript6 中,屬于Promise的狀態(tài):
promise模式在任何時(shí)刻都處于以下三種狀態(tài)之一:未完成(unfulfilled)、已完成(resolved)和拒絕(rejected)慎陵。
24.關(guān)于angularjs1:
前端mvc眼虱,極大降低前端開發(fā)的耦合
實(shí)現(xiàn)了數(shù)據(jù)雙向綁定
實(shí)現(xiàn)了依賴注入
25.java是解釋型語言,在運(yùn)行時(shí)才進(jìn)行翻譯指令席纽。
26.angularjs1中關(guān)于服務(wù):
避免全局對(duì)象污染
能注入到其它組件
避免代碼分散到各處
27.angularjs1中指令中的compile參數(shù)是在什么時(shí)候運(yùn)行的捏悬?
在生成DOM后掃描并生成
28.JavaScript的全局函數(shù):
JavaScript 中包含以下 7 個(gè)全局函數(shù)escape( )、eval( )润梯、isFinite( )过牙、isNaN( )、parseFloat( )纺铭、parseInt( )寇钉、unescape( )。
29.在jquery中彤蔽,如果想要獲取當(dāng)前窗口的寬度值摧莽,下面哪個(gè)是實(shí)現(xiàn)該功能的庙洼?
width()
解析:
alert($(window).height()); //瀏覽器當(dāng)前窗口可視區(qū)域高度
alert($(document).height()); //瀏覽器當(dāng)前窗口文檔的高度
alert($(document.body).height());//瀏覽器當(dāng)前窗口文檔body的高度
alert($(document.body).outerHeight(true));//瀏覽器當(dāng)前窗口文檔body的總高度 包括border padding margin
alert($(window).width()); //瀏覽器當(dāng)前窗口可視區(qū)域?qū)挾?
alert($(document).width());//瀏覽器當(dāng)前窗口文檔對(duì)象寬度
alert($(document.body).width());//瀏覽器當(dāng)前窗口文檔body的高度
alert($(document.body).outerWidth(true));//瀏覽器當(dāng)前窗口文檔body的總寬度 包括border padding margin
30.js中的函數(shù)聲明:
在 JS 里顿痪,聲明函數(shù)只有 2 種方法:
第 1 種: function foo(){...} (函數(shù)聲明)
第 2 種: var foo = function(){...} (等號(hào)后面必須是匿名函數(shù),這句實(shí)質(zhì)是函數(shù)表達(dá)式)
31.函數(shù)的調(diào)用方式有哪些:
直接調(diào)用
作為對(duì)象方法調(diào)用
作為構(gòu)造函數(shù)調(diào)用
通過call和apply方法調(diào)用
32.可以用作javascript異步模式的編程的方法:
回調(diào)函數(shù)
事件監(jiān)聽
發(fā)布/訂閱
Promises對(duì)象
33.解釋語言的特性:非獨(dú)立油够、效率低
34.請(qǐng)求頭和響應(yīng)頭有哪些:
請(qǐng)求(客戶端->服務(wù)端[request])
GET(請(qǐng)求的方式) /newcoder/hello.html(請(qǐng)求的目標(biāo)資源) HTTP/1.1(請(qǐng)求采用的協(xié)議和版本號(hào))
Accept: /(客戶端能接收的資源類型)
Accept-Language: en-us(客戶端接收的語言類型)
Connection: Keep-Alive(維護(hù)客戶端和服務(wù)端的連接關(guān)系)
Host: localhost:8080(連接的目標(biāo)主機(jī)和端口號(hào))
Referer: (告訴服務(wù)器我來自于哪里)
User-Agent: Mozilla/4.0(客戶端版本號(hào)的名字)
Accept-Encoding: gzip, deflate(客戶端能接收的壓縮數(shù)據(jù)的類型)
If-Modified-Since: Tue, 11 Jul 2000 18:23:51 GMT(緩存時(shí)間)
Cookie(客戶端暫存服務(wù)端的信息)
Date: Tue, 11 Jul 2000 18:23:51 GMT(客戶端請(qǐng)求服務(wù)端的時(shí)間)
響應(yīng)(服務(wù)端->客戶端[response])
HTTP/1.1(響應(yīng)采用的協(xié)議和版本號(hào)) 200(狀態(tài)碼) OK(描述信息)
Location:(服務(wù)端需要客戶端訪問的頁面路徑)
Server:apache tomcat(服務(wù)端的Web服務(wù)端名)
Content-Encoding: gzip(服務(wù)端能夠發(fā)送壓縮編碼類型)
Content-Length: 80(服務(wù)端發(fā)送的壓縮數(shù)據(jù)的長(zhǎng)度)
Content-Language: zh-cn(服務(wù)端發(fā)送的語言類型)
Content-Type: text/html; charset=GB2312(服務(wù)端發(fā)送的類型及采用的編碼方式)
Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT(服務(wù)端對(duì)該資源最后修改的時(shí)間)
Refresh: 1;url=http://www.it315.org(服務(wù)端要求客戶端1秒鐘后蚁袭,刷新,然后訪問指定的頁面路徑)
Content-Disposition: attachment; filename=aaa.zip(服務(wù)端要求客戶端以下載文件的方式打開該文件)
Transfer-Encoding: chunked(分塊傳遞數(shù)據(jù)到客戶端)
Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服務(wù)端發(fā)送到客戶端的暫存數(shù)據(jù))
Expires: -1//3種(服務(wù)端禁止客戶端緩存頁面數(shù)據(jù))
Cache-Control: no-cache(服務(wù)端禁止客戶端緩存頁面數(shù)據(jù))
Pragma: no-cache(服務(wù)端禁止客戶端緩存頁面數(shù)據(jù))
Connection: close(1.0)/(1.1)Keep-Alive(維護(hù)客戶端和服務(wù)端的連接關(guān)系)
Date: Tue, 11 Jul 2000 18:23:51 GMT(服務(wù)端響應(yīng)客戶端的時(shí)間)
35.flash和js通過什么類如何交互?
ExternalInterface
解析:Flash提供了ExternalInterface接口與JavaScript通信
兩個(gè)方法:call和addCallback
作用:call讓Flash調(diào)用js里的方法石咬,addCallback是用來注冊(cè)flash函數(shù)讓js調(diào)用揩悄。
36.若需給子scope發(fā)送消息,需使用哪個(gè)方法鬼悠?
$broadcast()
解析:
發(fā)送消息: $scope.$emit(name, data) 或者 $scope.$broadcast(name, data);
接收消息: $scope.on(name,function(event,data){ });
區(qū)別:
$emit 廣播給父controller 删性; $broadcast 廣播給子controller。broadcast 是從發(fā)送者向他的子scope廣播一個(gè)事件焕窝。
$emit 廣播給父controller蹬挺,父controller 是可以收到消息。
$on 有兩個(gè)參數(shù)function(event,msg) 第一個(gè)參數(shù)是事件對(duì)象它掂,第二個(gè)參數(shù)是接收到消息信息巴帮。
37.angularjs1中使用指令,綁定監(jiān)聽是在什么時(shí)候?
link時(shí)
38.頁面有一個(gè)按鈕button id為button1榕茧,通過原生的js如何禁用垃沦?
document.getElementById(“button1”).setAttribute(“disabled”,”true”);
document.getElementById(“button1”).disabled=true;
39.JavaScript中 call和apply的描述:
相同點(diǎn):兩個(gè)方法產(chǎn)生的 作用是完全一樣的
不同點(diǎn):方法傳遞的參數(shù)不同
call, apply方法它們除了第一個(gè)參數(shù),即執(zhí)行時(shí)上下文對(duì)象相同外,call方法的其它參數(shù)將依次傳遞給借用的方法作參數(shù),而apply就兩個(gè)參數(shù),第二個(gè)參數(shù)為一個(gè)數(shù)組傳遞。
40.下列哪些會(huì)返回false用押?
null肢簿、undefined、0
41.關(guān)于History對(duì)象的屬性或方法描述:
length 返回瀏覽器歷史列表中的URL數(shù)量
back() 加載 history 列表中的前一個(gè)URL
forward() 加載 history 列表中的下一個(gè)URL
go() 加載history列表中的某個(gè)具體頁面蜻拨。
42.angularjs1中的$apply()的作用是译仗?
使方法生效
43.在JS里判斷一個(gè)對(duì)象oStringObject是否為String:
oStringObject instanceof String
44.想要給輸入框添加一個(gè)輸入驗(yàn)證,可以用下面的哪個(gè)事件實(shí)現(xiàn)官觅?
hover(over ,out)
change(fn)
45.angularjs1使用了mvc進(jìn)行web開發(fā)纵菌,其中控制層一般用什么語言來定義:
javascript
46.在jquery中想要找到所有元素的同輩元素,下面哪一個(gè)是可以實(shí)現(xiàn)的休涤?
siblings([expr])
47.在一個(gè)表單中咱圆,如果想要給輸入框添加一個(gè)輸入驗(yàn)證,可以用下面的哪個(gè)事件實(shí)現(xiàn)功氨?
hover(over ,out)
change(fn)
48. 在JS里判斷一個(gè)對(duì)象oStringObject是否為String?
oStringObject instanceof String