面试前的准备

前端面试题总结二js篇

2018-11-19  本文已影响0人  明眸yh

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)
}
上一篇 下一篇

猜你喜欢

热点阅读