一、选择题(含多选)
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.请列举你所熟悉的性能优化方法。