亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

javascript基礎(chǔ)知識

時間:2023-03-22 18:42:42 JavaScript 我要投稿

javascript基礎(chǔ)知識大全

  大多數(shù)人覺得學(xué)習(xí)JavaScript是一件容易的事情,其實也并沒有錯,js的確是一個容易上手的語言。這就導(dǎo)致很多人都會用JavaScript,但卻很少有人能用的很精通的原因,因為他們大小看js這門語言的基礎(chǔ)和內(nèi)在了,基礎(chǔ),無論何時都是一個重要的存在,最直接的就是在你面試的時候,如果連js的數(shù)據(jù)類型都答不上來那是不是就太過分了…… 接下來,就讓我們一起總結(jié)一下JavaScript的基礎(chǔ)。

javascript基礎(chǔ)知識大全

  一、語法

  ------------------------------

  javascript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫。

  標(biāo)識符:就是指變量、函數(shù)、屬性的名字,標(biāo)識符要求如下

  1 第一個字符必須是一個字母、下劃線(_)或一個美元符號($)

  2 其他字符可以是字母、下劃線、美元符號或數(shù)字

  3 不能把關(guān)鍵字、保留字、true、false、null用作標(biāo)識符

  注釋

  // 單行注釋

  /*

  *

  * 多行注釋

  *

  */

  嚴(yán)格模式

  嚴(yán)格模式是ES5引入的,嚴(yán)格模式定義一種不同的解析和執(zhí)行模式,在嚴(yán)格模式下,對某些不安全的操作會跑出錯誤

  // 在整個腳本中啟用嚴(yán)格模式,可以在頂部添加如下代碼

  "use strict"

  // 也可以指定函數(shù)在嚴(yán)格模式下執(zhí)行

  function doSomething(){

  "use strict"

  // ....

  }

  二、變量和數(shù)據(jù)類型

  ------------------------------

  變量

  1、ESCMscript中的變量是松散類型的,即JavaScript使弱類型語言,換句話說js中的變量僅僅是一個保存值得占位符而已,可以保存任何類型的值。

  2、定義變量用 var 操作符。

  3、使用var操作符定義的變量將成為定義該變量的作用域中的局部變量。

  4、在函數(shù)作用域(塊作用域)中可以通過省略var定義全局變量(不推薦)。

  數(shù)據(jù)類型

  1、js中有5中基本數(shù)據(jù)類型和1中復(fù)雜數(shù)據(jù)類型他們分別是

  Undefined、Null、Boolean、Number、String和Object

  2、typeof操作符用來檢測變量的數(shù)據(jù)類型,對一個值使用typeof操作符會返回字一個 字符串 ,標(biāo)示著該值得類型:

  “undefined” —- 如果這個值未定義

  “boolean” —- 如果這個值是布爾值

  “string” —- 如果這個值是字符串

  “number” —- 如果這個值是數(shù)值

  “object” —- 如果這個值是對象或null

  “function” —- 如果這個值是函數(shù)

  3、js的6中數(shù)據(jù)類型與使用typeof判斷出來的數(shù)據(jù)類型并不對應(yīng),區(qū)別就在于使用typeof得到的類型標(biāo)示中沒有”null”,而是多了一個”function”,其他的都是一樣的,還要注意的就是對null是用typeof時會返回”object”,并且typeof操作符得到的是字符串。

  三、語句

  ------------------------------

  if語句

  語法:

  if(條件){

  }else if(條件){

  }else{

  }

  解釋:

  其中,條件可以是任意表達(dá)式,而且對這個表達(dá)式的求值結(jié)果不一定非得是Boolean值,ES會自動調(diào)用Boolean()轉(zhuǎn)換函數(shù)將這個表達(dá)式的結(jié)果轉(zhuǎn)換成一個布爾值。

  while語句

  語法:

  while(條件){

  something...

  }

  解釋:

  其中條件同if語句中的條件,while語句是前測試循環(huán)語句,即在執(zhí)行循環(huán)體之前就要對條件表達(dá)式求值,所以循環(huán)體有可能永遠(yuǎn)不會執(zhí)行。

  do-while語句

  語法:

  do{

  something...

  }while(條件)

  解釋:

  其中條件同if語句中的條件,do-while語句是后測試循環(huán)語句,即在對條件表達(dá)式求值之前,循環(huán)體中的代碼至少被執(zhí)行一次。有趣的記法就是(while是先問再揍,do-while是揍完再問)。

  for語句

  語法:

  for(初始化代碼, 條件, 執(zhí)行循環(huán)體后要執(zhí)行的代碼){

  something...

  }

  解釋:

  for語句也是一種前測試循環(huán)語句,所以循環(huán)體也有可能永遠(yuǎn)不會執(zhí)行,for語句和while語句的區(qū)別就是,在執(zhí)行循環(huán)之前初始化變量和定義循環(huán)后要執(zhí)行的代碼的能力。

  for-in語句

  語法:

  for(property in expression){

  something...

  }

  解釋:

  for-in語句是一種精準(zhǔn)的迭代語句,用來枚舉對象的屬性,需要注意的是,for-in語句輸出的屬性名的順序是不可測的,因瀏覽器而異。

  switch語句

  語法:

  switch(表達(dá)式){

  case value :

  statement

  break;

  case value :

  statement

  break;

  case value :

  statement

  break;

  default :

  statement

  }

  解釋:

  switch語句是與if語句最密切的流程控制語句,JavaScript中的switch語句有很多自己的特色,首先:可以在switch語句中使用任何數(shù)據(jù)類型,其次:每個case的值(即value),不僅僅只能是常量,也可以是變量甚至表達(dá)式。

  label語句

  語法:

  label : statement

  // 實例

  start : for(var i = 0; i < count; i++){

  alert(i)

  }

  解釋:

  使用label語句可以在代碼中添加標(biāo)簽,以便將來使用,上面例子中的start標(biāo)簽可以在將來由break或continue語句引用,使代碼跳至標(biāo)簽開始出執(zhí)行,一般label語句都要與for語句等循環(huán)語句中的break或continue配合只用。

  break和continue語句

  語法:

  // 例子

  mylabel :

  for(var i = 0; i < 10; i++){

  for(var j = 0; j < 10; j++){

  if(i == 5 && j == 5){

  break mylabel;

  // continue mylabel;

  }

  }

  }

  解釋:

  break和continue語句都是用來跳出循環(huán)的語句,不同之處在于break語句會強制執(zhí)行后面的語句,而continue語句只是跳出本次循環(huán)繼續(xù)執(zhí)行下次循環(huán)。上面的例子中,結(jié)合使用break語句和label語句,控制代碼的執(zhí)行。

  with語句

  解釋:

  with語句的作用是將代碼的作用域設(shè)置到特定的對象中。嚴(yán)格模式下使用with語句會報錯。定義with語句的目的是簡化同一個對象的多次編寫問題,如下例:

  var qs = location.search.substring(1);

  var hostName location.hostname;

  var url = location.href;

  // 上面的代碼中都包含location對象,使用with語句可以將代碼簡化如下

  with(location){

  var qs = search.substring(1);

  var hostName = hostname;

  var url = href;

  }

  四、函數(shù)

  ------------------------------

  JavaScript中的函數(shù)使用function關(guān)鍵字來聲明

  function(arg0, arg1, arg2, ..., argn){

  statements

  }

  理解參數(shù)

  JavaScript中的參數(shù)有一下特點:

  不介意你傳遞幾個參數(shù),即使你在定義函數(shù)時規(guī)定了接收幾個參數(shù),它都不會報錯。

  不在乎你傳遞的參數(shù)是什么數(shù)據(jù)類型。

  之所以會這樣,是因為JavaScript函數(shù)內(nèi)部的參數(shù)使用一個類數(shù)組對象來表示的,所以函數(shù)接收到的始終都是這個類數(shù)組對象,而不關(guān)心這個對象里面有什么參數(shù),在函數(shù)體內(nèi)可以是用arguments對象來訪問這個類數(shù)組對象,可以使用方括號的語法如:arguments[0]、arguments[1]等,這個事實說明一個重要的特點:

  命名參數(shù)并不是必須的,它只是提供了便利而已。

  通過arguments的length屬性獲知有多少個參數(shù)傳遞給了函數(shù):

  function howManyArgs(){

  alert(arguments.length);

  }

  howManyArgs("string", 1); // 2

  howManyArgs();   // 0

  howManyArgs(1);   // 1

  關(guān)于arguments有一點比較有意思,就是它的值永遠(yuǎn)與對應(yīng)的形式參數(shù)同步,即修改了arguments[0]的值會使對應(yīng)的命名參數(shù)的值也發(fā)生相應(yīng)的改變。但是這并不是說他們訪問的是相同的內(nèi)存空間,他們有獨立的存儲空間,只不過值會同步而已,另外如果值傳遞一個參數(shù),修改arguments[1]的值是不會改變對應(yīng)的命名參數(shù)的值的,這是應(yīng)為,arguments.length的長度是由傳遞參數(shù)個數(shù)決定的,而不是命名參數(shù)的個數(shù)決定的,在這里再次強調(diào)一次, 命名參數(shù)只是提供了便利而已,沒有任何其他作用 。

  沒有重載

  由于JavaScript中的函數(shù)沒有函數(shù)簽名的特征,所以沒有重載,不過可以通過檢查傳入函數(shù)的參數(shù)的類型和數(shù)量作出不同的反應(yīng)來模擬重載。

【javascript基礎(chǔ)知識】相關(guān)文章:

關(guān)于javascript的基礎(chǔ)知識04-01

對javascript的理解03-29

常用的JavaScript模式03-10

Javascript的this用法簡述03-25

理解Javascript對象06-21

JavaScript學(xué)習(xí)筆記03-30

JavaScript的課堂講解03-31

JavaScript 基礎(chǔ)教學(xué)04-01

JavaScript常用方法匯總03-08

詳細(xì)解說JavaScript事件06-20