前端面试题2
-
区别下css中的 link 和 @import?
- link属于xhtml标签,而@import是css的一种方式。
- 二者的加载机制不一样,link是在加载页面前把css加载完毕,import则是读取文件后再加载。
- import是css2中出现的,所以IE5不能支持
- JavaScript可以控制link标签,但不能控制import
-
关于清除浮动的方法?
- W3C标准推荐的是采用在的是在浮动元素末尾添加一个空标签:
<div style="clear:both"></div>
- W3C标准推荐的是采用在的是在浮动元素末尾添加一个空标签:
-
在页面添加样式的方法有哪些?
- 导入样式
- 外部样式
- 内部样式
- 内联样式
-
w3c指出的标题标签一共只有h1 ~ h6。
-
javascript语言实现继承机制的核心是:prototype;JavaScript引擎在查找一个对象的时候是通过原型链一步一步向上查找。
-
判断下面的代码的输出?考点:IIFE的作用域;给未声明的变量赋值时会自动提升为全局变量,但在严格模式下却不能这样;声明提升的问题;
(function() {
var a = b = 5;
})();
console.log(b);
console.log(a);
- 解释性语言的特点是:非独立,效率高
- JavaScript中的数字在计算机内储存为8byte
- 判断下面的代码的输出?将foo传递给全局变量f1,相当于将foo函数及其子元素都一起内存在了f1中。
function foo() {
var i = 0;
return function() {
console.log(i++);
}
}
var f1 = foo;
var f2 = foo;
f1();
f1();
f2();
- isNAN 的使用方法?
- 判断以下代码的输出:知识点:IIFE立即执行函数表达式中的this是指向window的;在IIFE中找不到的变量,同样会通过作用链向上查找。
var myObject = {
foo:'bar',
fun:function() {
var self = this;
console.log(this.foo);//bar
console.log(self.foo);//bar
(function() {
console.log(this.foo);//undefined
console.log(self.foo);//bar
}());
-
跨域的定义是什么?可以采用哪些方法来进行跨域?
- 域名、端口号、协议三者中有一个不同,都属于不同的域。
- 可以采用:js通过jsonp来跨域;修改document.domain来跨子域,使用window.name来进行跨域。
-
鼠标触发的事件有哪些?
click,contextmenu,mouseout.keydown是用户按下键盘触发的。 -
判断代码输出结果:知识点:声明提升和符号优先级的问题
if(!"a" in window) {
var a = 1;
}
alert(a);
网友评论