美文网首页
搜狗前端面试

搜狗前端面试

作者: 七月花未开 | 来源:发表于2019-04-10 12:09 被阅读0次

    1、为什么JavaScript是单线程的?

    作为浏览器的脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来复杂的同步问题。

    为了利用多核CPU的计算能力,HTML5提出Web Worker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。因此,没有改变JavaScript单线程的本质。

    2、js事件循环 事件轮询 event loop

    重复执行step2、3、4;称为事件循环。

    http://note.youdao.com/noteshare?id=9e52de23f6b7a1036c17bf8c4d65d7dd&sub=BE38B92ED5D44746971370C6190C13C2

    3、js中点击事件的三种写法

    <button id="btn">按钮</button>

    方式一:var btn = document.getElementById('btn');

      btn.onclick = function() {  alert(123);  };

    方式二:btn.addEventListener('click',function(){  alert(123);  },false);

    方式三:<button id="btn" onclick= "demo()">按钮</button>

      function demo() {  alert(123);    }

    4、ES6的箭头函数问题及let、const变量声明问题

    5、position问题,父元素不加定位,子元素position:absolute

    6、flex优点

    不需要进行浏览器兼容测试

    不再有布局界面的痛苦

    简单的域验证

    丰富的媒体支持

    实现表现层和内容的真正分离

    flex开发环境

    CSS支持

    7.实现一个div,左边固定div宽度200px,右边div自适应

    <div class= "container">

        <div class="left"></div>

        <div class="rigth"></div></div>

    简单三种方案:BFC(块级格式上下文)

    .container{

            width:1000px;height:400px;border: 1px solid red;

        }

    .left{

            width:200px;height:100%;background: gray;

            float: left;    }

    .rigth{

    height:100%;

            overflow:hidden;  /* 触发bfc */        background: green;

        }

    table布局

    设置父容器display为table,其他两个子元素设置table-cell

    flex布局

    设置父容器display为flex,left设置flex为none,right设置flex为1

    相关文章

      网友评论

          本文标题:搜狗前端面试

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