面试遇到的问题总结一下

js冒泡

  • 理解javascript

    DOM树中子节点包含在父节点中,点击子节点至关于同时点击了子节点与父节点,与父节点的父节点,最终的根节点就是document和windows。前端

    事件从触发点开始,逐层向上传递的过程就是冒泡java

  • 阻止冒泡es6

    • 阻止默认行为
    if(event.stopPropagation){
        event.stopPropagation();
    }else{
        event.cancelBubble = true;
    };
    复制代码
    • 或者,不阻止冒泡过程,修改执行的函数方法:
    event.target == event.currentTarget
    复制代码

    判断一下点击的是不是当前节点。json

    这个方法的缺点是:须要处理的节点多的时候重复代码多,效率低。windows

    • jq的return false

    javascript的return false只会阻止默认行为,而使用jQuery的话则既阻止默认行为又防止对象冒泡。性能优化

    原生js,只会阻止默认行为,不会中止冒泡bash

前端的性能优化

参考一下:异步

前端性能优化方案?前端性能

页面适配有那些方法

flex布局   百分比    rem
复制代码

ie兼容问题

  • ie7 overflow:hidden;失效

    是由于子元素有定位,解决办法是给父元素加定位样式;

  • ie下input点击有边框

    • 设置按钮为none,而后在按钮外面套一层来实现边框的效果

    • 或者input { filter:chroma(color=#000000); }

      注:由于ietest中没有滤镜功能,因此不能在这个软件里测试效果

  • IE6 IE7 IE8(Q) 不支持JSON.parse()

    JSON.parse() 方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。提供可选的reviver函数用以在返回以前对所获得的对象执行变换(操做)。

    问题:使用了 JSON 对象的脚本代码在 IE6 IE7 IE8(Q) 中运行的时候可能会抛出异常,致使功能失效。

    解决:使用eval和new Function方式代替json.parse

    //使用两种简单的方式解析 JSON 格式字符串

    json1 = eval("(" + jsonStr + ")")

    json2 = (new Function("return " + jsonStr))();

  • CSS hack

js异步的方法

参考一下: js异步方案

es6

  • 箭头函数的最大的好处是什么

    箭头函数内部的this是词法做用域,由上下文肯定;

    箭头函数彻底修复了this的指向,this老是指向词法做用域,也就是外层调用者obj:

    原来:

    var obj = {
        birth: 1990,
        getAge: function () {
            var b = this.birth; // 1990
            var fn = function () {
                return new Date().getFullYear() - this.birth; // this指向window或undefined
            };
            return fn();
        }
    };
    复制代码

    箭头函数:

    var obj = {
        birth: 1990,
        getAge: function () {
            var b = this.birth; // 1990
            var fn = () => new Date().getFullYear() - this.birth; // this指向obj对象
            return fn();
        }
    };
    obj.getAge(); // 25
    复制代码

再面再总结。。。

相关文章
相关标签/搜索