日期:2014-05-16  浏览次数:20345 次

考考你们的JS 我只作对了一半 你们试试
alert(typeof(NaN)); 

alert(typeof(Infinity));

alert(typeof(null)); 

alert(typeof(undefined)); 

alert(NaN==NaN); 

alert(NaN!=NaN); 

alert(NaN>NaN);  

alert(null==undefined);  

alert(null>=undefined);  

alert(null<=undefined);  

alert(null==null);

alert(null!=null); 

alert(null!=NaN); 

alert(null==NaN);

alert(NaN==undefined); 

alert(parseInt("123abc"));

alert("123abc"-0); 

alert(Infinity>10); 

alert(Infinity>"abc"); 

alert(Infinity==NaN);

alert(true==1); 

alert(new String("abc")=="abc"); 

alert(new String("abc")==="abc"); 

 
function step(a){

   return function(x){

      return x+a++;

   }

}

var a = step(10);

var b = step(20);

alert(a(10));

alert(b(20));

var a="123abc";

alert(typeof(a++));

alert(a);

?

?

用这个面试 估计死掉一大批啊

23 楼 dir_murong 2011-02-12  
能把这个作对的都是大牛  反正我错了好多
24 楼 goddkiller 2011-02-12  
考察面太小。。马马虎虎,错了几道
25 楼 tom33 2011-02-13  
拿这些题当面试题是不理智的。
26 楼 achun 2011-02-13  
基本考试都是考的记忆力,悲
27 楼 adamed 2011-02-14  
我觉得这个东西还是应该先参考规范:
The comparison x == y, where x and y are values, produces true or false. Such a comparison is
performed as follows:
1. If Type(x) is different from Type(y), go to step 14.
2. If Type(x) is Undefined, return true.
3. If Type(x) is Null, return true.
4. If Type(x) is not Number, go to step 11.
5. If x is NaN, return false.
6. If y is NaN, return false.
7. If x is the same number value as y, return true.
8. If x is +0 and y is ?0, return true.
9. If x is ?0 and y is +0, return true.
10. Return false.
11.If Type(x) is String, then return true if x and y are exactly the same sequence of characters (same
length and same characters in corresponding positions). Otherwise, return false.
12. If Type(x) is Boolean, return true if x and y are both true or both false. Otherwise, return false.
13.Return true if x and y refer to the same object or if they refer to objects joined to each other (see
13.1.2). Otherwise, return false.
14. If x is null and y is undefined, return true.
15. If x is undefined and y is null, return true.
16.If Type(x) is Number and Type(y) is String,
return the result of the comparison x == ToNumber(y).
17.If Type(x) is String and Type(y) is Number,
return the result of the comparison ToNumber(x) == y.
18. If Type(x) is Boolean, return the result of the comparison ToNumber(x) == y.
19. If Type(y) is Boolean, return the result of the comparison x == ToNumber(y).
20.If Type(x) is either String or Number and Type(y) is Object,
return the result of the comparison x == ToPrimitive(y).
21.If Type(x) is Object and Type(y) is either String or Number,
return the result of the comparison ToPrimitive(x) == y.
22. Return false.
NOTE
Given the above definition of equality:
String comparison can be forced by:"" + a == "" + b.
Numeric comparison can be forced by: a - 0 == b - 0.
Boolean comparison can be forced by: !a == !b.
The equality operators maintain the following invariants:
A != B is equivalent to !(A == B).
A == B is equivalent to B == A, except in the order of evaluation of A and B.
The equality operator is not always transitive. For example, there might be two distinct String objects,
each representing t