美文网首页
前端面试题1

前端面试题1

作者: sakatayui酱 | 来源:发表于2017-07-07 23:27 被阅读0次

    1.JS闭包。

    f = function() {return true;}; 

    g = function() {return false;}; 

    (function() { 

      if (g() && [] == ![]) { 

          f = function f() {return false;}; 

          function g() {return true;} 

      } 

    })(); 

    alert(f()); // true or false ? 

    答案:

    (function() {   

      if (g() && [] == ![]) {   

    //应该看成if((g() && [] )== ![]) 

    //因为g()是false后面那个&&[]就没起作用 整个都是false   

    //![]也是false 所以if成立 进入if块内 

          f = function f() {return false;};   

    //重新定义f   

          function g() {return true;}   

    //这句没用 

      }   

    })();   

    alert(f()); 

    //false 

    2.写出程序运行的结果?

    for(i=0, j=0; i<10, j<6; i++, j++){

    k = i + j;

    k=10

    3.编写一个方法 去掉一个数组的重复元素

    var arr = [1,2,3,1,43,12,12,1];

    var json = {};

    var arr2 = [];

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

            if(!json[arr[i]]){

                    json[arr[i]] = true;

            }else{

                    json[arr[i]] = false;

            }

            if(json[arr[i]]){

                    arr2.push(arr[i]);

            }

    };

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

            if(!aa(arr[i], arr2)){

                    arr2.push(arr[i])

            }

    };

    function aa(obj, arr){

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

                    if(arr[i] == obj) return true;

                    else return false;

            };

    }

    alert(arr2)

    4.JavaScript中如何检测一个变量是一个String类型?请写出函数实现

    typeof(obj) == 'string'

    obj.constructor == String

    5.请说出三种减低页面加载时间的方法

    1、压缩css、js文件

    2、合并js、css文件,减少http请求

    3、外部js、css文件放在最底下

    4、减少dom操作,尽可能用变量替代不必要的dom操作

    6.请尽可能详尽的解释AJAX的工作原理。

    创建ajax对象(XMLHttpRequest/ActiveXObject(Microsoft.XMLHttp))

    判断数据传输方式(GET/POST)

    打开链接 open()

    发送 send()

    当ajax对象完成第四步(onreadystatechange)数据接收完成,判断http响应状态(status)200-300之间或者304(缓存)执行回调函数

    7.行内元素有哪些?块级元素有哪些?CSS的盒模型?

    块级元素:div p h1 h2 h3 h4 form ul

    行内元素: a b br i span input select

    Css盒模型:内容,border ,margin,padding

    8.清除浮动的几种方式,各自的优缺点

    1.使用空标签清除浮动 clear:both(理论上能清楚任何标签,,,增加无意义的标签)

    2.使用overflow:auto(空标签元素清除浮动而不得不增加无意代码的弊端,,使用zoom:1用于兼容IE)

    3.是用afert伪元素清除浮动(用于非IE浏览器)

    9.IE和标准下有哪些兼容性的写法

    Var ev = ev || window.event

    document.documentElement.clientWidth || document.body.clientWidth

    Var target = ev.srcElement||ev.target

    10.解释jsonp的原理,以及为什么不是真正的ajax

    动态创建script标签,回调函数

    Ajax是页面无刷新请求数据操作

    相关文章

      网友评论

          本文标题:前端面试题1

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