js题集24

1.实现MagicFunction

MagicFunction(3) == 3; // should return true

MagicFunction(1, 2) == 3; // should return true

MagicFunction(1, 3)(2) == 6; // should return true

MagicFunction(1, 2)(3, 4, 5)(6)(7, 10) == 38; // should return true *1+2+3+4+5+6+7+10=38;

2.实现如下结果

seven(times(five())); // must return 35

four(plus(nine())); // must return 13

eight(minus(three())); // must return 5

six(dividedBy(two())); // must return 3

//your code........补充下面代码

function zero() {}

function one() {}

function two() {}

function three() {}

function four() {}

function five() {}

function six() {}

function seven() {}

function eight() {}

function nine() {}

function plus() {}

function minus() {}

function times() {}

function dividedBy() {}

3.实现lazy函数

new Lazy()

.add(filterNumbers)

.add(filterRange, 2, 7)

.add(max)

.invoke([1, 8, 6, [], "7", -1, {v: 5}, 4]); //6

//你可能需要下列函数用来测试结果

function max() {

return Math.max.apply(null, arguments);

}

function filterNumbers() {

return Array.prototype.filter.call(arguments, function(value) {

return isNumeric(value);

});

}

function isNumeric(n) {

return !isNaN(n) && Number(n) === n;

}

function filterRange(min, max) {

var args = Array.prototype.slice.call(arguments, 2);

return Array.prototype.filter.call(args, function(value) {

return min <= value && value <= max;

});

}

4.实现--自己猜

function func1(arg1, arg2) { ... }

var map = createArgumentMap(func1,‘valueOfArg1‘, ‘valueOfArg2‘);

console.log(map[‘arg1‘]);  // writes ‘valueOfArg1‘

console.log(map[‘arg2‘]);  // writes ‘valueOfArg2‘

5.实现extend

extend( {a: 1, b: 2}, {c: 3} ) // should === {a: 1, b: 2, c: 3}

extend( {a: 1, b: 2}, {c: 3}, {d: 4} ) // should === {a: 1, b: 2, c: 3, d: 4}

extend( {a: 1, b: 2}, {a: 3, c: 3} ) // should  === {a: 1, b: 2, c: 3}

extend( {a: false, b: null}, {a: true, b: 2, c: 3} ) // should  === {a: false, b: null, c: 3}

。。。。。。。。

//补充:原出题者情况说明较少 笔者补充一个arguments的情况过滤掉非object

//NODE 下 可以直接用isObject函数进行 非node下

//参考如下:

//

function isObject(val) {

if (val === null) { return false;}

return ( (typeof val === ‘function‘) || (typeof val === ‘object‘) );

}

1)arguments=

{

‘0‘: { a: 1, b: 2, length: 6 },

‘1‘: [],

‘2‘: ‘nope‘,

‘3‘: false,

‘4‘: [Function],

‘5‘: { c: 3, a: 3 }

}//   要过滤掉1,2,3,4

时间: 2024-08-23 19:00:40

js题集24的相关文章

js题集29--部分题目在线答题链接地址

1.http://davidshariff.com/js-quiz/  ---难度正常 2.http://perfectionkills.com/javascript-quiz/ --略虐心 3.http://perfectionkills.com/javascript-quiz-es6/ --没看过es6的就算了吧. 4.http://madebyknight.com/javascript-scope/  --基础题. 5.http://www.w3schools.com/js/js_quiz

js题集7

1. []==[] 答案:false. 数组,在 Javascript 中是对象,对象使用 == 比较都是比较的引用. 简单的说,就是,如果是同一个对象,就相等,如果不是同一个对象,就不等. 每次使用 [] 都是新建一个数组对象,所以 [] == [] 这个语句里建了两个数据对象,它们不等. 2. [3.toString(),3..toString(),3...toString()] 答案:error,"3",error Number中的toString(a),能够将数值转化成为a进制

js题集6

1. function() { var a = 10; if(a > 5) { a = 7; } alert(a); } 2. function() { if(true) { var a = 5; } alert(a); } 3. var a = 5; function first() { a = 6; } function second() { alert(a); } 按顺序执行函数. 4. var a = 5; function() { var a = 7; alert(a); } 5. v

js题集19

1.实现斐波那契数列.达到题目中的效果.不知道斐波那契数列是啥的请自行百度. function fibonacci(){ } var f=fibonacci(); for(var i=0;i<10;i++){ console.log(f()); } //output:按顺序输出斐波那契数列的数字. eg: 1 2 3 5 8 13 21 34 55 89

js题集27--数组拼接写法

1.能FQ的人类 可以参考如下链接(遍历过十几个相关的文章 觉得这个算不错的) https://davidwalsh.name/combining-js-arrays 2.不能FQ的可以参考 简略翻译.. 对于数组 var a = [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]; var b = [ "foo", "bar", "baz", "bam", "bun", "fun&quo

js题集22

1.实现warp function speak(name){ return "Hello " + name; } speak = speak.wrap(function(original, yourName, myName){ greeting = original(yourName); return greeting + ", my name is " + myName; }) var greeting = speak("Mary", &quo

js题集20

1.实现如下代码功能 var deps = { 'dep1': function () {return 'this is dep1';}, 'dep2': function () {return 'this is dep2';}, 'dep3': function () {return 'this is dep3';}, 'dep4': function () {return 'this is dep4';} }; var di = new DI(deps); var myFunc = di.i

js题集5

1. var foo = function foo() { console.log(foo === foo); }; foo(); 2. Number("1") - 1 == 0; 3. (true + false) > 2 + true; 4. function bar() { return foo; foo = 10; function foo() {} var foo = '11'; } alert(typeof bar()); 5. "1" - - &

js题集23

1.实现函数--defaultArguments 功能如下: function add(a,b) { return a+b;}; var add_ = defaultArguments(add,{b:9}); add_(10); // returns 19 add_(10,7); // returns 17 add_(); // returns NaN add_ = defaultArguments(add_,{b:3, a:2}); add_(10); // returns 13 now ad