美文网首页
web前端迈外迪面试题

web前端迈外迪面试题

作者: 戈德斯文 | 来源:发表于2017-06-01 14:32 被阅读0次

    所有试题凭记忆整理,欢迎指正

    1.label标签的作用

    label元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在label元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。<label>标签的 for 属性应当与相关元素的 id 属性相同。”for” 属性可把 label 绑定到另外一个元素。请把 “for” 属性的值设置为相关元素的 id 属性的值。

    2.简述你了解的盒模型

    标准 w3c 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。

    ie 盒子模型的范围也包括 margin、border、padding、content,和标准 w3c 盒子模型不同的是:ie 盒子模型的 content 部分包含了 border 和 padding。

    简单来说,w3c的盒模型的width只有content的宽度,而ie盒模型width算的是content、padding和border一共的宽度。

    3.你了解的定位,都是相对于谁定位

    static:默认值,没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

    relative:生成相对定位的元素,相对于其正常位置进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。

    fixed:生成固定定位元素,元素框的表现类似于将 position 设置为 absolute,不过其是相对于视窗本身定位。

    absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

    元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。

    4.简述弹性盒模型

    Flex 是 Flexible Box 的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。采用 Flex 布局的元素,称为 Flex 容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称”项目”。

    flex

    容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end。

    项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size。

    5.写出下面代码的输出值

    var a = 1,

          obj = {

               a:2,

               b:function(){

                         console.log(this.a);

                },

                c:function(){

                       return function(){

                                 console.log(this.a)

                       }

                }

           };

    obj.b();

    obj.b.call(window);

    obj.c()();

    6.写出下面调用函数后的输出值

    function add(a,b){

    var n = a || 5,

    m = b && 5;

    return n + m

    };

    add(false,1);

    add(1,false);

    7.用另一个方法实现$.trim()的方法

    String.prototype.trim = function() {

    return this.replace(/^\s\s*/, '').replace(/\s\s*$/, '');

    }

    8.写出一种数组去重的方法

    var arr = [1,2,3,4,3,1],

    newArr = [];

    for( var i = 0;i < arr.length;i ++ ){

    if( newArr.indexOf(arr[i]) === -1){

    newArr.push(arr[i])

    }

    };

    newArr;

    9.给ul列表中的li添加事件,点击li弹出相应li中的文本

    var list = document.getElementsByTagName('li');

    for( var i = 0;i < list.length;i ++ ){

    (function(){

    list[i].onclick = function(){

    console.log(this.innerHTML);

    }

    })(i)

    }

    10.call、apply和bind的区别

    都是用来改变函数的this对象的指向的;第一个参数都是this要指向的对象;都可以利用后续参数传参;bind是返回对应函数,便于稍后调用,apply、call是立即调用;

    11.js的同步和异步

    同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入”任务队列”(task queue)的任务,只有”任务队列”通知主线程,某个异步任务可以执行了,该任务才会进入主线程执行。

    js中的异步包括setTimeout和setInterval函数,还有ajax。

    12.对于移动端页面内容较多怎么优化

    懒加载,能够在用户滚动页面的时候自动获取更多的数据,而新得到的数据不会影响原有数据的显示,同时最大程度上减少服务器端的资源耗用。

    相关文章

      网友评论

          本文标题:web前端迈外迪面试题

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