前端面试题2

作者: drunkcat2020 | 来源:发表于2016-09-03 09:19 被阅读122次

    前端面试题2

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

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

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

      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

        本文链接:https://www.haomeiwen.com/subject/kspkettx.html