:『44個のJavascript変態問題』

6004 ワード

第1題
['1','2','3'].map(parseInt);

第2題
[typeof null,null instanceOf Object]

第3題
[[3,2,1].reduce(Math.pow),[].reduce(Math.pow)]

第4題
var val = 'smtg';
console.log('value is' + (val === 'smtg') ? 'Something' : 'Nothing');

第5題
var name = 'World';
(function(){
    if (typeof name === 'undefined') {
        var name = 'jack';
        console.log('Goodbye' + name);
    } else {
        console.log('Hello' + name);
    }
})();

第6題
var END = Math.pow(2,53);
var START = END - 100;
var count = 0;
for(var i = START; i <= END; i++){
    count++;
}
console.log(count);

第7題
var arr = [0,1,2];
arr[10] = 10;
arr.filter(function(x){ return x === undefined});

第8題
var two = 0.2;
var one = 0.1;
var eight = 0.8;
var six = 0.6;
[two - one == one, eight - six == two]

第9題
function showCase(value){
    switch(value){
        case 'A':
            console.log('Case A');
            break;
        case 'B':
            console.log('Case B');
            break;
        case undefined:
            console.log('undefined');
            break;
        default:
            console.log('unknown');
            break;
    }
}

showCase(new String('A'))

第10題
function showCase(value){
    switch(value){
        case 'A':
            console.log('Case A');
            break;
        case 'B':
            console.log('Case B');
            break;
        case undefined:
            console.log('undefined');
            break;
        default:
            console.log('unknown');
            break;
    }
}

showCase(String('A'))

第11題
function isOdd(num){
    return num % 2 == 1;
}
function isEven(num){
    return num % 2 == 0;
}
function isSane(num){
    return isEven(num) || isOdd(num);
}

var values = [7, 4, '13', -9, Infinity];
values.map(isSane);

第12題
Array.isArray(Array.prototype);

第13題
var a = [0];
if([0]){
    console.log(a == true);
}else{
    console.log('wut');
}

第14題
parseInt(3, 8);
parseInt(3, 2);
parseInt(3, 0);

第15題
[] == [];

第16題
'5' + 3;
'5' - 3;

第17題
1 + - + + + - + 1

第18題
var arr = Array(3);
arr[0] = 2;
arr.map(function(item){
    return '1';
});

第19題
function sidEffecting(arr){
    arr[0] = arr[2];
}
function bar(a, b, c){
    c = 10;
    sidEffecting(arguments);
    return a + b + c;
}
bar(1,1,1);

第20題
var a = 11111111111111000;
var b = 111;
console.log(a + b);

第21題
var x = [].reverse;
x();

第22題
Number.MIN_VALUE > 0;
// MIN_VALUE     JavaScript          (   0 ,     )。       5 x 10-324

第23題
[1 < 2 < 3, 3 < 2 < 1];

第24題
2 == [[[2]]]

第25題
3.toString();
3..toString();
3...toString();

第26題
(function(){
    var x = y = 1;
})();
x;
y;

第27題
var a = /123/;
var b = /123/;
a == b;
a === b;

第28題
var a = [1, 2, 3];
var b = [1, 2, 3];
var c = [1, 2, 4];
a == b;
a === b;
a > c;
a < c;

第29題
var a = {};
var b = Object.prototype;
[a.prototype === b, Object.getPrototypeOf(a) === b];

第30題
function f(){};
var a = f.prototype, b = Object.getPrototypeOf(f);
a === b;

第31題
function foo(){}
var oldName = foo.name;
foo.name = 'bar';
[oldName, foo.name];

第32題
'1 2 3'.replace(/\d/g,parseInt);

第33題
function f(){}
var parent = Object.getPrototypeOf(f);
f.name; //?
parent.name; //?
typeof eval(f.name) //?
typeof eval(parent.name) //?

第34題
var lowerCaseOnly = /^[a-z]+$/;
[lowerCaseOnly.test(null), lowerCaseOnly.test()];

第35題
[,,,].join(', ');

第36題
var a = {class:'Animal', name:'Fido'};
a.class;

第37題
var a = new Date('epoch');

第38題
var a = Function.length;
var b = new Function().length;
a === b;

第39題
var b = Date(0);
var b = new Date(0);
var c = new Date();
[a === b, b === c, a === c]

40番
var min = Math.min(), max = Math.max();
min < max;

第41題
function captureOne(re, str){
    var match = re.exec(str);
    return match && match[1];
}
var numRe = /num=(\d+)/ig;
var wordRe = /word=(\w+)/i;

a1 = captureOne(numRe, 'num=1');
a2 = captureOne(wordRe, 'word=1');
a3 = captureOne(numRe, 'NUM=2');
a4 = captureOne(wordRe, 'WORD=2');

[a1 === a2, a3 === a4]

第42題
var a= new Date('2014-03-19');
var b =new Date(2014, 03, 19);
[a.getDay() === b.getDay(), a.getMonth() === b.getMonth()]

第43題
if('http://xxxgif.com/picture.jpg'.match('.gif')){
    'a gif file'
}else{
    'note a git file'
}

第44題
function foo(a){
    var a;
    return a;
}
function bar(a){
    var a = 'bye';
    return a;
}
[foo('hello'),bar('hello')];

この文書は、 , , 。を使用して学習を共有するためにのみ使用されます.