2018WPS暑期实习生web前端笔试题

2018WPS暑期实习生web前端笔试题

昨天参加的现场笔试,总共六题,现将题目整理如下:

1.判断如下A,B,C各输出什么

var arr = [];
arr['a'] = a; 
console.log(arr.length) // A
arr['2'] = 2;
console.log(arr.length) // B
arr.length = 0;
console.log(arr);       // C

个人解析:
第一个把’a’转成Number时,变为NaN,所以存不进去,A输出为0,答案是对的,不过解析好像不是这样,大家可以再控制台试一下,因为此时arr是’[a:”a”]’;
第二个,把’2’转为了2,所以相当于’arr[2]=2’这样就把数组变成了3个元素长度的,其中前两个为undefined,B输出3;
第三个,因为length变为0了,所以元素清除,剩下’[a:”a”]’,我答成了’[]’

2.添加代码使得如下代码每隔一秒输出一个数字

for (var i = 0; i < 5; i++) {
// to do
}

代码:

for (var i = 0; i < 5; i++) {  
  (function(j) {  
    setTimeout(function() {  
      console.log(j);  
    }, 1000 * j);  
  })(i);  
} 

3.如下代码输出啥

var f = function g() {
    return 32;
}
typeof g();

报错,undefined

4.如下代码输出啥

function jude(val) {
    swith(val) {
        case "A":
            console.log(1);
            break;
        case "string":
            console.log(2);
            break;
        case "undefined":
            console.log(3);
            break;
        case undefined:
            console.log(4);
            break;
        default:
            console.log(5);
            break;
    }
}
jude(new String("A"));

输出5,我的理解是他new出来的是一个object,然后switch是用的全相等,所以都没有符合的

5.用javascript实现map的数据结构,使得外部只能通过map提供的接口访问数据
这道题就用闭包做的

6.对于一个排好序的数组,如果当中有两个数的和为某个给定的数target,返回true,否则false,事件复杂度O(n)
这是道简单的算法题,分别从头和尾向中间扫描,头尾相加判断和与target的大小关系
和比target小的话,头++
和比target大的话,尾–

你可能感兴趣的:(web前端,WPS暑期实习生,笔试题,笔试面试)