js的6道基础题(笔试常考题)
来源:互联网 发布:网络语蛋炒饭 编辑:程序博客网 时间:2024/06/03 15:36
转载:http://www.bubuko.com/infodetail-20477.html
题目一:找出数字数组中最大的元素
var arr=[0,1,2,3,4,5,6,7,8,9];console.log(Math.max.apply(null,arr))
题目二:转化一个数字数组为function数组(每个function都弹出相应的数字)
for循环闭包的问题
var arr=[0,1,2,3,4,5,6,7,8,9],arrFunc = [];for(var i = 0, l = arr.length; i < l; i++){ arrFunc.push((function(i) { return function() { console.log(arr[i]); } })(i))}题目三:给object数组进行排序(排序条件是每个元素对象的属性个数)
Object.prototype.myLength = function(){ var length = 0; for(var i in this){ length ++; } return length;}var objArr = [ {a:1, b:2, c:5, d:7, e:8, g:0, h:12, i:5, v:9, w:9, x:9, y:9, z: 15}, {a:2, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, l:9, m:9, n:0, o:1, p:9, x:9, y:9, z:9 }, {a:3, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, l:9, m:9, n:0, o:1, p:9, q:0 }, {a:4, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, w:9, x:9, y:9, z:9 }, {a:5, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, v:9, w:9, x:9, y:9, z:9 }, {a:6, b:2, c:5, d:7, e:8, g:0, h:12, i:5, j:7, k:5, l:9, m:9, n:0, o:1, p:9, q:0, r:8, s:9, t:9, z:9 }, {a:7, b:2, c:5, d:7, e:8, x:9, y:9, z:9 }];// arr before sortvar numArr1 = []for(var i = 0, l = objArr.length; i < l; i++ ){ numArr1.push( objArr[i].myLength() )}console.log(numArr1.join(" ")) //result// arr after sortobjArr.sort(function(a,b){ // stable sort // return (a.myLength() > b.myLength()) === true? 1:-1; // unstable sort return (a.myLength() >= b.myLength()) === true? 1:-1; // return a.myLength() - b.myLength();})var numArr2 = []for(var i = 0, l = objArr.length; i < l; i++ ){ // console.log(i,l,objArr[i].myLength()); numArr2.push( objArr[i].myLength() )}console.log(numArr2.join(" ")) //result
题目四:利用JavaScript打印出Fibonacci数(不使用全局变量)
var fibonacci = (function(){ var s = []; var fun = function(x) { if(s[x]){ return s[x]; } if(x < 0) { throw "Can‘t be negative"; return ; } else if(x === 0 || x === 1) { s[x] = s[x] || x; return s[x]; } else{ s[x] = ( fun(x - 1) + fun(x - 2) ); return s[x]; } }; fun.print = function() { console.log(s.join(" ")); } fun.printLast = function() { // console.log(s.length); return(s[s.length-1]); } window.s = s; return fun;})()console.time(200);console.log(fibonacci(200));console.log(fibonacci.printLast());console.log(fibonacci.print());console.timeEnd(200);
var fibonacci2 = function(x){ if(x < 0) { throw "Can‘t be negative"; return ; } if(x === 0 || x === 1) { return x; } var num = ( fibonacci2(x - 1) + fibonacci2(x - 2) ) return num;}console.time(32);console.log(fibonacci2(32));console.timeEnd(32);
题目五:实现如下语法的功能:var a = (5).plus(3).minus(6);
Number.prototype.plus = function(x) { var num = this.valueOf() + x; return Number(num);}Number.prototype.minus = function(x) { var num = this.valueOf() - x; return Number(num);}var a = (5).plus(3).minus(6);console.log(a);alert(a);题目六:实现如下语法的功能:var a = add(2)(3)(4);
function add(x) { var mid; mid = x || 0; function addObj(x) { x = x || 0; mid = mid + x; return addObj; } addObj.valueOf = function() { return mid; } addObj.toString = function() { return mid; } return addObj;}//call the obj.valueOf functionconsole.log(add(2));console.log(add(2)(3));console.log(add(2)(3)(4));console.log(add(2)(3)(4)(5));//call the obj.toString functionalert(add(2));alert(add(2)(3));alert(add(2)(3)(4));alert(add(2)(3)(4)(5));
阅读全文
1 0
- js的6道基础题(笔试常考题)
- 牛客刷题:笔试常考题和易错题(长期更新)
- 有关String类的笔试常考题
- c++基础常考题
- C++ 笔试面试常考题
- 计算机面试、笔试常考题
- SSH面试常考题(6)
- 笔试面试常考题---------内存对齐
- 第九节 笔试中的几个常考题
- 校招笔试中组合常考题
- C++笔试常考题 虚函数
- C语言基础3:字符串函数的实现(笔试考题)
- java基础部分面试常考题
- Java基础总结-Java面试常考题
- 面试JAVEEE程序员常问的考题
- SSH面试常考题(1)
- SSH面试常考题(2)
- SSH面试常考题(3)
- STL简介
- linux内核的I2C子系统详解1——I2C总线概览、驱动框架概览
- java使用IO流完成文件的复制(文本、图片、视频)
- Scala中trait
- Java IO-BufferedInputStream
- js的6道基础题(笔试常考题)
- Gym 101617H dfs + 离散化 + 枚举
- macOS卸载MySQL数据库与workbench提示"Your connection attempt failed for user 'root' from your host ..."解决方法
- FFT的课件
- 每日练习|Day016
- 欧几里得算法扩展
- 对于Java的认识
- 记我人生的第一个博客
- 双线性插值算法的详细总结