網站開發基礎知識篇二 JavaScript知識點

"應該說它是一門非常簡單的語言,又是一門非常複雜的語言,說它簡單,是因爲學會它只需片刻功夫;而說他複雜,是因爲要真正掌握它需要數年時間"。(引自《JavaScript高級程序設計》)。因爲此前已經掌握了不少高級語言,這篇主要記錄Js的特點和知識點。

1.Js是一種弱類型,解釋執行的語言。

   弱類型是說它的數據類型不像C/C++那樣有嚴格的short,int ,long,double,char,String(C++/Java)等等的具體類型,只要使用var聲明,可以存儲任何類型的數據。

  這裏也就要提一下js的六種數據類型Undefined/Null/Boolean/Number/String/Object

  這裏建議把變量初始化爲null,而且在確定不用改變量/對象後將其賦爲null,這樣可以手動釋放資源,提高程序運行效率。

  解釋執行是指瀏覽器負責解析js代碼並執行,這裏會單獨開一章,js的執行過程。

2.在js中可以把數組當作棧和隊列使用

  棧方法:

   var colors = new Array();         var count = colors.push("red"); var item = colors.pop();  

  隊列方法

  shift()方法,移除數組中的第一項並返回該項,push和棧方法相同,和push一起使用

  unshift()和pop()一起使用,表示以相反的方向默唸隊列。

  那下面的厲害的

  splice()方法。這個方法強大的不能更強大,但我看來這個函數,實在有點無聊.一個方法功能豐富真的好嗎,如果以單一職責模式來看,顯然不好。

  主要用途是向數組的中部加入項,它可以有不同的參數,看起來是js試支持重載的,然而ECMAScript沒有重載的概念(既然不支持重載,那麼又是怎麼實現該方法的?學習後會進行補充)。又可添加多個參數,目測底層代碼以可變參數列表實現.

  如果接受2個參數,如果splice(0,2)那麼會從0位置開始刪除2項

  如果接受多個參數splice(2,1,"hello","world")那麼會從2的位置刪除一項,然後添加2項

  如果是splice(2,0,"hello","world")那麼就直接從2位置處開始添加。

3.作用域(這裏和其他高級語言差別很大)

   js的訪問範圍是從內到位訪問的,不能從外到內,比如

  var out;

  function hello(){

       var in;

         var sayHello = function(){

            var inest;

     }

  } 

這裏inset可以訪問in和out,in可以訪問out,而out不能訪問內部變量。

js是作用域鏈,沒有塊級作用域的

至於爲什麼,以後在瞭解之後會在這裏補充內容。


補充內容:js沒有重載的概念又是如何實現重載函數的?

1.使用arguments.lengh來判斷參數長度不同的參數列表。

2.使用 constructor來檢測參數類型。

檢測到不同的參數列表實現不同的方法。







 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章