前端面试题2

前端面试题2

  • 区别下css中的 link 和 @import?

    1. link属于xhtml标签,而@import是css的一种方式。
    2. 二者的加载机制不一样,link是在加载页面前把css加载完毕,import则是读取文件后再加载。
    3. import是css2中出现的,所以IE5不能支持
    4. JavaScript可以控制link标签,但不能控制import
  • 关于清除浮动的方法?

    1. W3C标准推荐的是采用在的是在浮动元素末尾添加一个空标签:
  • 在页面添加样式的方法有哪些?

    1. 导入样式
    2. 外部样式
    3. 内部样式
    4. 内联样式
  • 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
            }());
  • 跨域的定义是什么?可以采用哪些方法来进行跨域?

    1. 域名、端口号、协议三者中有一个不同,都属于不同的域。
    2. 可以采用:js通过jsonp来跨域;修改document.domain来跨子域,使用window.name来进行跨域。
  • 鼠标触发的事件有哪些?
    click,contextmenu,mouseout.keydown是用户按下键盘触发的。

  • 判断代码输出结果:知识点:声明提升和符号优先级的问题

    if(!"a" in window) {
        var a = 1;
    }
    alert(a);

你可能感兴趣的:(前端面试题2)