1.请阅读以下代码
1 2 3 |
|
该代码在浏览器中执行,输出的日志结果是什么?
undefined
window
console
obj
解析:call方法是用来改变this指向的,调用该方法的obj方法log中的this不再指向obj。没用明确指向的this都指向顶层对象window
2.执行下列选项的程序,输出结果不是Window对象的是()
setTimeout(function(){
console.log(this);
},1000);
function Star(){
console.log(this);
}
new Star();
var o = {
sayHi:()=>{
console.log(this);
}
}
o.sayHi();
(function(){
console.log(this);
}());
解析:new关键字this指向的都是关键字后面的对象哈,默认绑定与箭头函数指向的都是window
3.给网页添加JavaScript的方式有
使用script标签,将javascript代码写到<script></script>之间
添加外部javascript文件
使用行内javascript
使用@import引入javascript文件
解析:@import用于引入css文件,import可以引入js
4.以下哪些操作会触发Reflow:
1 |
|
alert(obj.className)
alert(obj.offsetHeight)
obj.style.height = “100px”
obj.style.color = “red”
解析:
重排:reflow:几乎是无法避免的。现在界面上流行的一些效果,比如树状目录的折叠、展开(实质上是元素的显 示与隐藏)等,都将引起浏览器的 reflow。鼠标滑过、点击……只要这些行为引起了页面上某些元素的占位面积、定位方式、边距等属性的变化,都会引起它内部、周围甚至整个页面的重新渲 染。通常我们都无法预估浏览器到底会 reflow 哪一部分的代码,它们都彼此相互影响着。
重绘:repaint:如果只是改变某个元素的背景色、文 字颜色、边框颜色等等不影响它周围或内部布局的属性,将只会引起浏览器 repaint(重绘)。repaint 的速度明显快于 reflow
5.如果想要获取整个网页文档中h1标签的个数,可以通过(B)
var hele=document.getElementByTagName('h1'); alert(hele.length);
var hele=document.getElementsByTagName('h1'); alert(hele.length);
var hele=getElementsByTagName('h1'); alert(hele.length);
var hele=getElementByTagName('h1'); alert(hele.length);
6.
1 2 |
|
以上代码输出结果为( A )
e
null
1
其他几项都不对
解析:exec是判断是否有那个数字,如果有的话,则返回这个数字;如果没有的话,返回false
7.
1 2 3 4 5 6 7 |
|
上面这段代码运行后的输出是
foo()
类型错误
undefined//选他!
foobar