一、選擇題(含多選)
1.以下哪一項不屬於瀏覽器Response Headers字段(B)
A.Contection B.Referer C.Content-Type D.Server
2.在javascript中,以下返回true的選項是(ABCD)
A.typeof({})==='object' B.typeof('1234'-0)==='number' C.typeof(null)==='object' D.typeof(undefined)==='undefined'
3.下面哪一個不是Javascript的保留字(E)
A.goto B.abstract C.implements D.super E.array
4.下列代碼:
console.log((function(a) {} ).length);
console.log((function(a=5) {} ).length);
console.log((function(a,b=5,c) {} ).length);
console.log((function(a,b=5,c=5) {} ).length);
輸出分別為(D)
A.0 1 1 2 B.1 0 2 1 C.0 1 1 0 D.1 0 1 1
5.<div style="color:red !important; text-color:blue">
<span style="color:green;text-color:black !important;">Hello
</span>
</div>
頁面中"hello"的顏色是(C)
A.red B.blue C.green D.black
6.String str = new String("xyz");"xyz"在內存中是怎么分配的(B D)
A.寄存器 B.堆 C.棧 D.字符串常量區
//老陳醋
7.現有<div id="myId"></div>想通過XMLHTTPRequest 更新這個元素中的內容,下面哪種做法正確(C)
A.var myId=document.getElementById("myId");myId.innerHTML=req.statusCode;
B.var myId=document.getElementById("myId");myId.setStatus (req.statusCode);
C.var myId=document.getElementById("myId");myId.innerHTML=req.status;
D.var myId=document.getElementById("myId");myId.status=req.status;
8.以下有關Javascript中call和apply的描述,錯誤的是(D)
A.apply傳入的是一個參數數組,也就是將多個參數組合成為一個數組傳入。
B.call傳入的是直接的參數列表。call方法可將一個函數的對象上下文從初始的上下文改變為由thisObj指定的新對象。
C.call與apply都屬於Function.prototype的一個方法,所以每個function的實例都有call、apply屬性。
D.兩者傳遞的參數不同,call函數第一個參數都是要傳入給當前對象的對象,apply不是。
9.關於跨域問題下面說法正確的是(A)
A.通過iframe設置document.domain可以實現跨域
B.可以利用flash的http請求,來處理跨域問題
C.通過jsonp方式可以發出post請求,請求其他域名下的接口
D.一般情況下,m.toutiao.com可以ajax請求www.toutiao.com域名下的接口並獲得響應
10.下面有關CSS中link和@import的區別,描述錯誤的是()
A.link在支持CSS瀏覽器上都支持,而@import只在5.0以上的版本有效
B.當使用javascript控制DOM去改變樣式的時候,只能使用@import方式
C.當一個頁面被加載的時候,link引用的CSS會同時被加載,而@import引用的CSS會等到頁面全部被下載完再被加載
D.link屬於XHTML標簽,而@import完全是CSS提供的一種方式
11.Javascript中,以下哪條語句一定會產生運行錯誤(C)
A.var _變量=NaN; B.var obj = []; C.var obj = //; D.var obj = {};
12.以下兩個變量a和b,a+b的哪個結果是NaN()
A.var a = undefined,b=NaN
B.var a = '123',b=NaN
C.var a = undefined,b=NaN
D.var a = NaN,b='undefined'
13.var a = 10;b = 20;c =4; ++b+c+a++以下哪個結果是正確的(B)
A.34 B.35 C.36 D.37
14.以下哪個單詞不屬於javascript保留字(B)
A.with B.parent C.class D.void
15.請選擇結果為真的表達式()
A.null instanceof Object B.null === undefined C.null == undefined D.NaN == NaN
二、運行結果題
1.請寫出下列代碼的輸出結果:
var a = 0, b = 0;
function add(a){
add = function(b){
alert(++a+b++);
}
alert(a++);
}
add(1);
add(2);
執行結果:1,5
add(1);
add(2);
add(3); 結果:1,5,7
2.請寫出name打印順序:
var a = {
name:"Json",
sayName:function(){
console.log(this.name);
}
};
var name = "Aaron";
function sayName(){
var sss = a.sayName;
sss();
a.sayName();
(a.sayName)();
(b=a.sayName)();
}
sayName();
4.下列正則表達式輸出結果是多少?
var reg = /^[a-zA-Z_][a-zA-Z0-9_] {5,20}/,
name1 = 'tanbayi',
name2 = '0tanbayi',
name3 = '你好 tanbayi',
name4 = 'hi',
alert(reg.test(name1));
alert(reg.test(name2));
alert(reg.test(name3));
alert(reg.test(name4));
三、簡答題
1.js面向對象有幾種方式並用js寫出。
2.請寫出你所知道的瀏覽器兼容問題,以及對應的解決辦法(可包含CSS和JS)
3.編寫一段JS程序提取URL中的各個GET參數(參數名和參數個數不確定),將其按key-value形式返回一個json結構中,如{a:'1',b:'2',c:,d:'xxx',e:undefined}
4.請列舉你所熟悉的性能優化方法。