精通JavaScript

1. 类型检查

(1)使用typeof

var oStr="123";

                if (typeof oStr == "string")  括号 小写

                {

                    var num=parseInt(oStr);

                    alert(num)

                }

(2)使用构造函数属性

var oStr="123"; if (oStr.constructor == String) { var num=parseInt(oStr); alert(num) }

2. 作用域是由函数划分的,而不是由块划分的(比如:while if for语句的中间)。

       var foo="test";

               if(true){

                    var foo="new test";     将foo设置为new test

                    alert(foo=="new test");   true

               }

               function test()

               {

                    var foo="old test";

               }

               test();

               alert(foo =="new test");   true

3. 代码总是有一个上下文对象(代码处在该对象内)。

     var obj={

                    yes: function ()                yes,no为函数

                         {

                            this.val=true;

                         },

                    no:  function ()

                         {

                            this.val=false;

                         }

               };

               alert(obj.val==null);                  发现obj对象没有val属性

               obj.yes();         执行了yes函数后,将val属性与obj对象关联起来

               alert(obj.val==true);

               window.no=obj.no;                  把window.no指向obj.no并执行

               window.no();

               alert(obj.val==true);                obj对象的val不变(因为no的上下文已经变成window对象了)

               alert(window.val==false);        而window的属性被更新。

4. 创建简单对象,并设置属性

               var obj=new Object();

               obj.val=5;

               obj.click=function (){

                   alert("hello");

               }

//等价代码,结合键值对(key/value pair)来定义属性

               var  obj={

                   val  : 5,

                   click: function (){                

                          alert("hello");

                   }

               };

5. 

foo

相关推荐