JavaScript概念

 語句

  JavaScript程序是由若干語句組成的,語句是編寫程序的指令。JavaScript提供了完整的基本編程語句,它們是:

  賦值語句、switch選擇語句、while循環語句、for循環語句、for each循環語句、do...while循環語句、break循環中止語句、continue循環中斷語句、with語句、try…catch語句、if語句(if..else,if…else if…)。

 函數

  函數是命名的語句段,這個語句段可以被當作一個整體來引用和執行。使用函數要注意以下幾點:

  1)函數由關鍵字function定義(也可由Function構造函數構造)

  2)使用function關鍵字定義的函數在一個作用域內是可以在任意處調用的(包括定義函數的語句前);而用var關鍵字定義的必須定義後才能被調用

  3)函數名是調用函數時引用的名稱,它對大小寫是敏感的,調用函數時不可寫錯函數名

  4)參數表示傳遞給函數使用或操作的值,它可以是常量,也可以是變量,也可以是函數,在函數內部可以通過arguments對象(arguments對象是一個僞數組,屬性callee引用被調用的函數)訪問所有參數

  5)return語句用於返回表達式的值。

  6)yield語句扔出一個表達式,並且中斷函數執行直到下一次調用next。

  一般的函數都是以下格式:

  function myFunction(params){

  //執行的語句

  }

  函數表達式:

  var myFunction=function(params){

  //執行的語句

  }

  var myFunction = function(){

  //執行的語句

  }

  myFunction();//調用函數

  匿名函數,它常作爲參數在其他函數間傳遞:

  window.addEventListener('load',function(){

  //執行的語句

  },false);

5.3 對象

  JavaScript的一個重要功能就是面向對象的功能,通過基於對象的程序設計,可以用更直觀、模塊化和可重複使用的方式進行程序開發。

  一組包含數據的屬性和對屬性中包含數據進行操作的方法,稱爲對象。比如要設定網頁的背景顏色,所針對的對象就是document,所用的屬性名是bgcolor,如document.bgcolor="blue",就是表示使背景的顏色爲藍色。

事件

  用戶與網頁交互時產生的操作,稱爲事件。事件可以由用戶引發,也可能是頁面發生改變,甚至還有你看不見的事件(如Ajax的交互進度改變)。絕大部分事件都由用戶的動作所引發,如:用戶按鼠標的按鍵,就產生click事件,若鼠標的指針在鏈接上移動,就產生mouseover事件等等。在JavaScript中,事件往往與事件處理程序配套使用。

  而對事件的處理,W3C的方法是用addEventListener()函數,它有三個參數:事件,引發的函數,是否使用事件捕捉。爲了安全性,建議將第三個參數始終設置爲false

  傳統的方法就是定義元素的on…事件,它就是W3C的方法中的事件參數前加一個“on”。而IE的事件模型使用attachEvent和dettachEvent對事件進行綁定和刪除。JavaScript中事件還分捕獲和冒泡兩個階段,但是傳統綁定只支持冒泡事件。 

 變量

  常用類型

  object:對象

  array:數組

  number:數

  boolean:布爾值,只有true和false兩個值,是所有類型中佔用內存最少的

  null:一個空值,唯一的值是null

  undefined:沒有定義和賦值的變量

  命名形式

  一般形式是:

  var <變量名錶>;

  其中,var是javascript的保留字,表面接下來是變量說明,變量名錶是用戶自定義標識符,變量之間用逗號分開。和C++等程序不同,在javascript中,變量說明不需要給出變量的數據類型。此外,變量也可以不說明而直接使用。

  作用域

  變量的作用域由聲明變量的位置決定,決定哪些腳本命令可訪問該變量。在函數外部聲明的變量稱爲全局變量,其值能被所在HTML文件中的任何腳本命令訪問和修改。在函數內部聲明的變量稱爲局部變量。只有當函數被執行時,變量被分配臨時空間,函數結束後,變量所佔據的空間被釋放。局部變量只能被函數內部的語句訪問,只對該函數是可見的,而在函數外部是不可見的。

 運算符

  javascript提供了豐富的運算功能,包括算術運算、關係運算、邏輯運算和連接運算。

  1.算術運算符

  javascript中的算術運算符有單目運算符和雙目運算符。雙目運算符包括:+(加)、-(減)、*(乘)、/(除)、%(取模)、|(按位或)、&(按位與)、<<(左移)、>>(右移)等。單目運算符有:-(取反)、~(取補)、++(遞加1)--(遞減1)等。

  2.關係運算符

  關係運算符又稱比較運算,運算符包括:<(小於)、<=(小於等於)、>(大於)、>=(大於等於)、=(等於)和!=(不等於)。

  關係運算的運算結果爲布爾值,如果條件成立,則結果爲true,否則爲false。

  3.邏輯運算符

  邏輯運算符有:&(邏輯與)、|(邏輯或)、!(取反,邏輯非)、^(邏輯異或)。

  4.字符串連接運算符

  連接運算用於字符串操作,運算符爲+(用於強制連接),將兩個或多個字符串連結爲一個字符串。

  5.三目操作符?:

  三目操作符“?:”格式爲:

  操作數?表達式1:表達式2

  三目操作符“?:”構成的表達式,其邏輯功能爲:若操作數的結果爲true,則表述式的結果爲表達式1,否則爲表達式2。例如max=(a>b)?a:b;該語句的功能就是將a,b中的較大的數賦給max。 

  相關規則

  在JavaScript中,“==="是全同運算符,只有當值相等,數據類型也相等時才成立。

  等同運算符“=="的比較規則:

  當兩個運算數的類型不同時:將他們轉換成相同的類型。

  1)一個數字與一個字符串,字符串轉換成數字之後,進行比較。

  2)true轉換爲1、false轉換爲0,進行比較。

  3)一個對象、數組、函數與 一個數字或字符串,對象、數組、函數轉換爲原始類型的值,然後進行比較。(先使用valueOf,如果不行就使用toString)

  4)其他類型的組合不相等。

  想兩個運算數類型相同,或轉換成相同類型後:

  1)2個字符串:同一位置上的字符相等,2個字符串就相同。

  2)2個數字:2個數字相同,就相同。如果一個是NaN,或兩個都是NaN,則不相同。

  3)2個都是true,或者2個都是false,則相同。

  4)2個引用的是同一個對象、函數、數組,則他們相等,如果引用的不是同一個對象、函數、數組,則不相同,即使這2個對象、函數、數組可以轉換成完全相等的原始值。

  5)2個null,或者2個都是未定義的,那麼他們相等。

  而“===”是全同運算符,全同運算符遵循等同運算符的比較規則,但是它不對運算數進行類型轉換,當兩個運算數的類型不同時,返回false;只有當兩個運算數的類型相同的時候,才遵循等同運算符的比較規則進行比較。

  例如:null==undefined 會返回真, 但是null===undefined 就會返回假!

表達式

  表達式是指將常量、變量、函數、運算符和括號連接而成的式子。根據運算結果的不同,表達式可分爲算術表達式、字符表達式、和邏輯表達式。

 腳本語言

  不同於服務器端腳本語言,例如PHP與ASP,JavaScript是客戶端腳本語言,也就是說JavaScript是在用戶的瀏覽器上運行,不需要服務器的支持而可以獨立運行。所以在早期程序員比較青睞於JavaScript以減少對服務器的負擔,而與此同時也帶來另一個問題:安全性。而隨着服務器的強壯,雖然現在的程序員更喜歡運行於服務端的腳本以保證安全,但JavaScript仍然以其跨平臺、容易上手等優勢大行其道。

  JavaScript是一種腳本語言,其源代碼在發往客戶端運行之前不需經過編譯,而是將文本格式的字符代碼發送給瀏覽器由瀏覽器解釋運行。解釋語言的弱點是安全性較差,而且在JavaScript中,如果一條運行不了,那麼下面的語言也無法運行。而且由於每次重新加載都會重新解譯,加載後,有些代碼會延遲至運行時才解譯,甚至會多次解譯,所以速度較慢。

  與其相對應的是編譯語言,例如Java。Java的源代碼在傳遞到客戶端運行之前,必須經過編譯,因而客戶端上必須具有相應平臺上的仿真器或解釋器,它可以通過編譯器或解釋器實現獨立於某個特定的平臺編譯代碼的束縛。但是它必須在服務器端進行編譯,這樣就拖延了時間。但因爲已經封裝,所以能保證安全性。

 Javascript庫

  庫,指得是可以方便應用到現有開發體系中的、現成的代碼資源。庫不僅爲大部分日常的DOM腳本編程工作提供了快捷的解決方案,而且也提供了許多獨特的工具。雖然庫使用起來很方便,但它們也並非能解決你所有的問題。在使用庫之前,一定要保證真正理解javascript的DOM原理。

  這些庫一般是一個(或多個)js(Javascript的縮寫)文件,只要把他們導入你的網頁就能使用了。

常用的庫有:

  jQuery:javascript庫中的新成員,提供css和xpath選擇符查找元素、ajax、動畫效果等

  JSer: 國人開發的一款全功能的開源腳本框架. 藉助JSer,可以便捷的操作DOM、CSS樣式訪問、屬性讀寫、事件綁定、行爲切換、動態載入、數據緩存、URL與AJAX等衆多功能。

  dojo:一個巨大的庫,包括的東西很多,dijit和dojox是dojo的擴展,幾乎你想要的各種javascript程序都包括了。

  prototype:一個非常流行的庫,使用了原型鏈向javascript中添加了很多不錯的函數

  YUI:(YahooYUI庫)yahoo!用戶界面,非常實用,提供各種解決方案。

  ExtJs:組件非常豐富,皮膚也很漂亮,動畫效果也豐富。



相關概念請點擊:http://baike.so.com/doc/5344215.html

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