美文网首页面试前的准备
前端面试题总结二js篇

前端面试题总结二js篇

作者: 明眸yh | 来源:发表于2018-11-19 21:31 被阅读0次

    1.Javascript的基本数据类型

    undefined null number string boolen
    

    2.console.log(8+ '9')输出什么? undefinde==null

    console.log(8+'9') // '89'
    console.log(null == undefined ) // true
    

    3.什么是事件委托,举例说明

    JavaScript高级程序设计上讲:事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。
    举个例子:页面上有这么一个节点树,div>ul>li>a;比如给最里面的a加一个click点击事件,那么这个事件就会一层一层的往外执行,执行顺序a>li>ul>div,有这样一个机制,那么我们给最外面的div加点击事件,那么里面的ul,li,a做点击事件的时候,都会冒泡到最外层的div上,所以都会触发,这就是事件委托,委托它们父级代为执行事件。
    

    3.判断一个字符串中出现次数最多的字符,统计这个次数

    var str = 'asdfssaaasasasasaa';
    var json = {};
    for (var i = 0; i < str.length; i++) {
        if(!json[str.charAt(i)]){
            json[str.charAt(i)] = 1;
        }else{
            json[str.charAt(i)]++;
        }
    };
    var iMax = 0;
    var iIndex = '';
    for(var i in json){
        if(json[i]>iMax){
            iMax = json[i];
            iIndex = i;
        }
    }        
    console.log('出现次数最多的是:'+iIndex+'出现'+iMax+'次');
    

    4.JS 对象(Object)和字符串(String)互转方法

    // 字符串转化为 对象
    var jsonString = '[{"name":"天鸽"},{"name":"梅花"},{"name":"台风"}]';
    var jsArr = JSON.parse(jsonString);
    jsArr.push({"name":"帕卡"});
    console.log(jsArr);
    // 把js对象 数组 转化为 JSON格式的字符串 
    var result = JSON.stringify(jsArr); console.log(result);
    

    5.var boo = '11' + 2 - '1'

    var boo = '11' + 2 - '1'
    console.log(boo) // 111 
    console.log(typeof boo) // number
    

    6.一道经典的面试题

    // 这道题涉及了异步、作用域、闭包
    // 因为是setTimeout是异步的。正确的理解setTimeout的方式(注册事件): 有两个参数,第一个参数是函数,第二参数是时间值。 调用setTimeout时,把函数参数,放到事件队列中。等主程序运行完,再调用。
    for(var i= 1; i<=3; i++) {
        setTimeout(function(){
            console.log(i) // 4 4 4
        },0)
    }
    

    相关文章

      网友评论

        本文标题:前端面试题总结二js篇

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