sum(2,3),sum(2)(3)==5、字符串查找最大字符等面试题型答案浅述

122 阅读2分钟

一、选择题

1.(基础)http状态码,那些理解是错误的(C)

  • 404 Not found,访问地址没敲对
  • 200 OK,一切正常
  • 500 Internal Server Error,浏览器端JS代码报错了
  • 304 Not Modified 可能访问到一个旧网页

2.(基础)下面语句的输出结果是什么?(A)

for(var i = 0;i<5;i++)
{
	setTimeout(function(){
	console.log(i);},0);
}
  • 5,5,5,5,5
  • 0,1,2,3,4
  • 0,0,0,0,0
  • 4,4,4,4,4

3 (基础)“^”[a-z A-Z]\w[7,10]$,这段正则表达式表达什么意思(D)

  • 仅字符,长度为8-11位
  • 以字母开头,数字,下划线,长度7-10位
  • 以字母开头,数字,下划线,长度8-11位
  • 仅字符,长度为7-10位

4 (高级)下面哪个判断值返回true?(A)

  • if([]==false)
  • if(""==true)
  • if([]===false)
  • if("")

5 (基础)该代码运行结果是多少(A)

var count=0;
function foo(){
	this.count++;
}
foo.count=0;
for(var i = 0;i<5;i++)
{
	foo();
}
  • count = 5;foo.count=0;
  • count = 5;foo.count=5;
  • count = 0;foo.count=0;
  • count = 0;foo.count=5;

6 (基础)下面的代码会在console输出什么(A)

var myobject = 
    {
      foo:'bar',
      func: function(){
        var self = this;
        console.log("A1="+this.foo);
        console.log("A2="+self.foo);
        (function(){
        console.log("B1="+this.foo);
        console.log("B2="+self.foo);
      }());
      }
    }
myobject.func();
  • A1=bar,A2=bar,B1=undefined,B2=bar
  • A1=bar,A2=bar,B1=bar,B2=bar
  • A1=bar,A2=bar,B1=undefined,B2=undefined
  • A1=bar,A2=bar,B1=bar,B2=undefined

7 (基础)下面的代码执行结果是什么(A)

var v1 = "0.3",v2=0.4;
console.log(v1+v2);
  • 0.30.4
  • 0.7
  • undefined
  • NaN

二、简答题

  1. 写一个按照下面方式调用都能正常工作的sum方法 console.log(sum(2,3));//Output 5 console.log(sum(2)(3));//Output 5
function sum(){
    var num = arguments[0];
    if(arguments.length==1){
        return function(sec){
            return num+sec;
        }
    }else{
        var num = 0;
        for(var i = 0;i<arguments.length;i++){
            num = num + arguments[i];
        }
    return num;
    }
}

6.统计一个字符串出现最多的字母 输入:aljghdfraaaasdenas 输出:a

function findstr(str){ var str = str.split(''); var newStr = {}; var theMax = 0; // 数组去重 和计算出现的次数 str.forEach(function(item){ if(newStr[item]){ newStr[item]++; }else { newStr[item] = 1; } }); // 比较字母出现的次数,并取出出现最多次数的字母及对应的次数; for(str in newStr){ if(newStr[str] > theMax){ // 如果 var maxStr = [] 不在for 内的话效果会有问题 ,可以放在if 外 var maxStr =[]; theMax = newStr[str]; maxStr.push(str); }else if(newStr[str] == theMax){ theMax = newStr[str]; maxStr.push(str); } }
for(var i= 0;i<maxStr.length;i++){ alert(maxStr[i]); } } var str= 'aljghdfraaaasdenas'; findstr(str);