天天看點

學習javascript 的一點感想

//動态性是指,在一個Javascript對象中,要為一個屬性指派,我們不必事先建立一個字段,隻需要在使用的時候做指派操作即可,如下例:

var obj=new object();

obj.name="myname";

obj.say=function(){

    alert("hello");

}

obj.say();

//Javascript是弱類型的,它的資料類型無需在聲明時指定,解釋器會根據上下文對變量進行執行個體化,比如:

var s="text";

alert(s);

s=12+5;

//js的資料類型:基礎資料類型(字元串,布爾值,數值性(浮點型,整型))和對象類型(對象,數組,函數)

    print(typeof obj);  

    print(typeof array);  

    print(typeof func);  

    //将列印出  

    object  

    function  

   //當使用str.length時,JavaScript會自動包裝一個臨時的String對象,内容為str的内容,然後擷取該對象的length屬性,最後,這個臨時的對象将被釋放。

  //由于JavaScript是弱類型的,是以JavaScript引擎需要根據上下文來“猜測”對象的類型,這就使得JavaScript的效率比編譯型的語言要差一些。

   //引用類型,如對象,數組和函數,由于他的大小不受限制,故我們通過對其引用來通路它,引用本身就是個位址。即指向存儲複雜對象的位置。

//JavaScript本身是基于原型的,每個對象都有一個prototype的屬性來,這個prototype本身也是一個對象,是以它本身也可以有自己的原型,這樣就構成了一個鍊結構。

//解釋器傳遞給函數的是一個類似于數組的内部值,叫arguments,這個在函數對象生成的時候就被初始化了。比如我們傳遞給adPrint一個參數的情況下,其他兩個參數分别為undefined.這樣

//我們可以擴充JavaScript解釋器環境中内置的對象,這種方式的好處在于,擴充之後的對象可以适用于其後的任意場景,而不用每次都顯式的聲明

//通過 new 操作符來作用與一個函數,實質上會發生這樣的動作:

首先,建立一個空對象,然後用函數的 apply 方法,将這個空對象傳入作為 apply 的第一個參數,及上下文參數。這樣函數内部的 this 将會被這個空的對象所替代:

    <strong>var triangle = new Shape( "triangle" );  

    // 上一句相當于下面的代碼  

    var triangle = {};  

    Shape.apply(triangle, [ "triangle" ]);</strong> 

繼續閱讀