1.下列描述错误的是():
A.HTTP状态码302表示暂时性转移 B.domContentLoaded事件早于onload事件
C.IE6/7/8不支持事件捕获 D.localStorage存储的数据,在刷新页面后会消失
正确答案为D。
B选项:domContentLoaded事件仅当Dom加载完成时就触发,不包括样式表、图片、flush之类的数据的加载
2.以下js程序输出的内容为:
<SCRIPT LANGUAGE=""JavaScript>
var a="undefined";
var b="false";
var c="";
function assert(aVar){
if(aVar)
alert(true);
else
alert(false);
}
assert(a);
assert(b);
assert(c);
</SCRIPT>
正确答案为: true/true/false
在js中,字符串类型的数据只有空字符串会被转换成false,number类型的数据只有0或者NAN会被转换成false,Object类型的数据只有null会被转换成false,undefined类型会被转换成false
3.以下程序输出的是:
function Foo(){
var i=0;
return function(){
document.write(i++);
}
}
var f1=Foo(),
f2=Foo();
f1();
f1();
f2();
正确结果为:010
这是js的一个闭包问题,这里的局部变量i,对于f1和f2来说都是全局变量,但是他们两个函数之间来说又是相互独立的,也就是说,在他们两个函数范围内的i是独立的,不会相互影响,却会一直存在于自己的作用域中
4.现有如下dom结构:
<ul>
<li>click me</li>
<li>click me</li>
<li>click me</li>
<li>click me</li>
</ul>
运行如下js代码:
var elements=document.getElementsByTagName('li');
var length=elements.length;
for(var i=0;i<length;i++){
elements[i].onclick=function(){
alert(i);
}
}
结果为什么
正确结果为:都是输出4
每个li标签的onclick事件执行时,本身onclick绑定的function的作用域中没有变量i,i为undefined,则解析引擎会寻找父级作用域,发现父级作用域中有i,且for循环绑定事件结束后,i已经赋值为4,所以每个li标签的onclick事件执行时,alert的都是父作用域中的i,也就是4。这是作用域的问题。
当定义onclick事件时,并没有变量i,该变量的值这时候为undefined。当我们触发onclick事件时,就会进行作用域查找i,此时i的值已经为4了,因此都是输出的4
下列列出的浏览器中,没有webkit内核的是
chrome
safari
搜狗浏览器
firefox
正确结果为:firefox
Wekbit是一个开源的Web浏览器引擎,也就是浏览器的内核。Apple的Safari, Google的Chrome, Nokia S60平台的默认浏览器,Apple手机的默认浏览器,Android手机的默认浏览器均采用的Webkit作为器浏览器内核。Webkit的采用程度由 此可见一斑,理所当然的成为了当今主流的三大浏览器内核之一。另外两个分别是Gecko和Trident,大名鼎鼎的Firefox便是使用的Gecko 内核,而微软的IE系列则使用的是Trident内核。 另外,搜狗浏览器是双核的,双核并不是指一个页面由2个内核同时处理,而是所有网页(通常是标准通用标记语言的应用超文本标记语言)由webkit内核处理,只有银行网站用IE内核
浏览器 的内核引擎,基本上是四分天下:1)Trident: IE 以Trident 作为内核引擎;2)Gecko: Firefox 是基于 Gecko 开发;3)WebKit: Safari, Google Chrome,傲游3,猎豹浏览器,百度浏览器 opera浏览器;4)Presto: Opera的内核,但由于市场选择问题,主要应用在手机平台–Opera mini