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)
}
网友评论