博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
金s办公软件web前端笔试题
阅读量:4684 次
发布时间:2019-06-09

本文共 3388 字,大约阅读时间需要 11 分钟。

1.

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

A、B、C分别输出什么?

运行结果如下:

var arr = [];    arr['a'] = 1;    console.log(arr); // [a: 1]    console.log(arr.length); // 0    arr['4'] = 2;    console.log(arr) // (5) [empty × 4, 2, a: 1]    console.log(arr.length); // 5    arr.length = 0;    console.log(arr) // [a: 1]    console.log(arr.length); // 0

所以A为0,B为5,C为[a:1]

 

2.

for(var i=0; i < 5; i ++) {    // 在此处编写代码    // 每隔一秒按顺序输出i值}

解法:

for (var i = 0; i < 5; i++) {        // 在此处编写代码        // 每隔一秒按顺序输出i值        (function(i) {            setTimeout(() => {                console.log(i)            }, 1000 * i)        })(i)    }

这道题如果没有限定给出给定的代码,还可以根据ES6块级作用域的知识把for循环中的var改成let,或者用Promise

var arr = []    var output = (i) => new Promise(resolve => {        setTimeout(() => {            console.log(i);            resolve()        }, 1000 * i)    });    for (var i = 0; i < 5; i++) {        arr.push(output(i))    };

 

3.有如下代码:

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

运行结果是:

报错

(扩展:如果题目中typeof f === 'function', typeof f() === 'number')

 

4.有如下代码:

function showCase(value) {        switch (value) {            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)        }    }    showCase(new String('A'))

运行结果是:

5

(扩展:console.log(new String('A')) => String {"A"})

 

5.请用JavaScript实现map的数据结构,要求数据只能通过map提供的接口进行访问。

解析:

map的数据结构方法有

属性/方法              作用size属性               size属性返回 Map 结构的成员总数。set(key, value)       set方法设置键名key对应的键值为value,然后返回整个 Map 结构。如果key已经有值,则键值会被更新,否则就新生成该键。set方法返回的是当前的Map对象,因此可以采用链式写法。get(key)              get方法读取key对应的键值,如果找不到key,返回undefined。has(key)              has方法返回一个布尔值,表示某个键是否在当前 Map 对象之中。delete(key)           delete方法删除某个键,返回true。如果删除失败,返回false。clear()               clear方法清除所有成员,没有返回值。

参考:

function MyMap() {        this.map = new Object();        this.length = 0;        this.size = function() {            return this.length;        }        this.set = function(key, value) {            if (!this.map[key]) {                ++this.length;            }            this.map[key] = value;        }        this.get = function(key) {            return this.map[key] ? this.map[key] : undefined;        }        this.has = function(key) {            return this.map[key] ? true : false;        }        this.delete = function(key) {            if (this.map[key]) {                --this.length;                delete this.map[key];                return true;            } else {                return false;            }        }        this.clear = function() {            this.map = new Object();            this.length = 0;        }    }

 

6.给定一个排好序的整数数组,判断其中是否存在两个数之和等于指定的值,时间复杂度最好能达到O(n)。(例如:[1,2,3,4,5,9],指定值为12,结果为true)

var twoSum = function(nums, target) {        var arr = {};        for (var i = 0; i < nums.length; i++) {            if (typeof(arr[nums[i]] !== "undefined")) {                return true            }             arr[target - nums[i]] = i        }    }

 

转载于:https://www.cnblogs.com/lhh520/p/10323044.html

你可能感兴趣的文章
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore
查看>>
配置NRPE的通讯
查看>>
VS2005编译VTK5.10.1
查看>>
shp系列(一)——利用C++进行shp文件的读(打开)与写(创建)开言
查看>>
总结上海永辉云商高级前端职位面试题集
查看>>
中国计算机学会推荐国际学术会议和期刊目录
查看>>
文本元素
查看>>
各种可以远程
查看>>
对服务器的认识
查看>>
分治法实现1-N的数字按字典序全排列组合 Java语言
查看>>
序列化 与 反序列化
查看>>
购物车
查看>>
python基础(一)
查看>>
UI设计篇·入门篇·绘制简单自定义矩形图/设置按钮按下弹起颜色变化/设置图形旋转...
查看>>
linux 使用NSF 映射远程磁盘目录
查看>>
elasticjob 当当的分布式定时任务管理
查看>>
BZOJ 3438: 小M的作物( 最小割 )
查看>>
js性能优化-事件委托(2)
查看>>
Determine File Output Location
查看>>
51NOD 1068 Bash游戏 V3
查看>>