JavaScript基础知识篇-你真的了解JavaScript吗?

JavaScript技术    2009-08-24 14:54  

  你真的了解JavaScript吗?

  让我们重温一下JavaScript的一些基础知识,请先写出以下代码中问号处的答案,再运行比较!

  <script type="text/javascript">

  var a=0,b=0,c=0;
a+++b+++c;
alert([a,b,c]);//?

  var a=[];
alert(a[a++]);//?
alert(a);//?

  var o={a:o++};
alert(o.a);//?

  var f=function(){};
alert(f(f++));

  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(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")//?

  var a = "123abc";
alert(typeof(a++));//?
alert(a);//?

  var a = "123abc";
a.valueOf = function(){return parseInt(a);}
alert(++a);//?
alert(a-0);//?

  var a = new Object();
a.toString = function(){return "123abc";}
a.valueOf = function(){return parseInt(a);}
alert(++a);//?
alert(a-0);//?

  var spv = String.prototype.valueOf;
String.prototype.valueOf = function(){
    return parseFloat(this);
}
alert("123abc" > 122);//?
alert(new String("123abc") > 122);//?
String.prototype.valueOf = spv;

  var s = new String("abc");
alert(typeof(s) == typeof("abc"));//?
alert(s === "abc");//?
alert(s.toString() == s);//?

  var a = new Object(),b = new Object();
a.toString = function(){return "a"};
b.toString = function(){return "b"};
alert(a>b);//?
a.valueOf = function(){return 1};
b.valueOf = function(){return 0};
alert(a>b);//?

  var step = function(a){
    return function(x){
        return x + a++;
    }
}
var a = step(10);
var b = step(20);
alert(a(10));//?
alert(b(10));//?

  </script>

  运行代码查看结果:http://www.jslab.org.cn/?tag=javascriptBasis

  希望大家在学习JavaScript的时候注意基本功的练习!

  原文地址:http://www.v-ec.com/dh20156/article.asp?id=264

在线留言

我要留言