:『44個のJavascript変態問題』
6004 ワード
第1題
第2題
第3題
第4題
第5題
第6題
第7題
第8題
第9題
第10題
第11題
第12題
第13題
第14題
第15題
第16題
第17題
第18題
第19題
第20題
第21題
第22題
第23題
第24題
第25題
第26題
第27題
第28題
第29題
第30題
第31題
第32題
第33題
第34題
第35題
第36題
第37題
第38題
第39題
40番
第41題
第42題
第43題
第44題
この文書は、
['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')];
この文書は、
, , 。
を使用して学習を共有するためにのみ使用されます.