激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

javascript基礎知識

時(shí)間:2024-08-22 20:40:54 JavaScript 我要投稿

javascript基礎知識大全

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

javascript基礎知識大全

  一、語(yǔ)法

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

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

  標識符:就是指變量、函數、屬性的名字,標識符要求如下

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

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

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

  注釋

  // 單行注釋

  /*

  *

  * 多行注釋

  *

  */

  嚴格模式

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

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

  "use strict"

  // 也可以指定函數在嚴格模式下執行

  function doSomething(){

  "use strict"

  // ....

  }

  二、變量和數據類(lèi)型

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

  變量

  1、ESCMscript中的變量是松散類(lèi)型的,即JavaScript使弱類(lèi)型語(yǔ)言,換句話(huà)說(shuō)js中的變量?jì)H僅是一個(gè)保存值得占位符而已,可以保存任何類(lèi)型的值。

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

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

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

  數據類(lèi)型

  1、js中有5中基本數據類(lèi)型和1中復雜數據類(lèi)型他們分別是

  Undefined、Null、Boolean、Number、String和Object

  2、typeof操作符用來(lái)檢測變量的數據類(lèi)型,對一個(gè)值使用typeof操作符會(huì )返回字一個(gè) 字符串 ,標示著(zhù)該值得類(lèi)型:

  “undefined” —- 如果這個(gè)值未定義

  “boolean” —- 如果這個(gè)值是布爾值

  “string” —- 如果這個(gè)值是字符串

  “number” —- 如果這個(gè)值是數值

  “object” —- 如果這個(gè)值是對象或null

  “function” —- 如果這個(gè)值是函數

  3、js的6中數據類(lèi)型與使用typeof判斷出來(lái)的數據類(lèi)型并不對應,區別就在于使用typeof得到的類(lèi)型標示中沒(méi)有”null”,而是多了一個(gè)”function”,其他的都是一樣的,還要注意的就是對null是用typeof時(shí)會(huì )返回”object”,并且typeof操作符得到的是字符串。

  三、語(yǔ)句

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

  if語(yǔ)句

  語(yǔ)法:

  if(條件){

  }else if(條件){

  }else{

  }

  解釋?zhuān)?/p>

  其中,條件可以是任意表達式,而且對這個(gè)表達式的求值結果不一定非得是Boolean值,ES會(huì )自動(dòng)調用Boolean()轉換函數將這個(gè)表達式的結果轉換成一個(gè)布爾值。

  while語(yǔ)句

  語(yǔ)法:

  while(條件){

  something...

  }

  解釋?zhuān)?/p>

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

  do-while語(yǔ)句

  語(yǔ)法:

  do{

  something...

  }while(條件)

  解釋?zhuān)?/p>

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

  for語(yǔ)句

  語(yǔ)法:

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

  something...

  }

  解釋?zhuān)?/p>

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

  for-in語(yǔ)句

  語(yǔ)法:

  for(property in expression){

  something...

  }

  解釋?zhuān)?/p>

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

  switch語(yǔ)句

  語(yǔ)法:

  switch(表達式){

  case value :

  statement

  break;

  case value :

  statement

  break;

  case value :

  statement

  break;

  default :

  statement

  }

  解釋?zhuān)?/p>

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

  label語(yǔ)句

  語(yǔ)法:

  label : statement

  // 實(shí)例

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

  alert(i)

  }

  解釋?zhuān)?/p>

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

  break和continue語(yǔ)句

  語(yǔ)法:

  // 例子

  mylabel :

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

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

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

  break mylabel;

  // continue mylabel;

  }

  }

  }

  解釋?zhuān)?/p>

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

  with語(yǔ)句

  解釋?zhuān)?/p>

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

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

  var hostName location.hostname;

  var url = location.href;

  // 上面的代碼中都包含location對象,使用with語(yǔ)句可以將代碼簡(jiǎn)化如下

  with(location){

  var qs = search.substring(1);

  var hostName = hostname;

  var url = href;

  }

  四、函數

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

  JavaScript中的函數使用function關(guān)鍵字來(lái)聲明

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

  statements

  }

  理解參數

  JavaScript中的參數有一下特點(diǎn):

  不介意你傳遞幾個(gè)參數,即使你在定義函數時(shí)規定了接收幾個(gè)參數,它都不會(huì )報錯。

  不在乎你傳遞的參數是什么數據類(lèi)型。

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

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

  通過(guò)arguments的length屬性獲知有多少個(gè)參數傳遞給了函數:

  function howManyArgs(){

  alert(arguments.length);

  }

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

  howManyArgs();   // 0

  howManyArgs(1);   // 1

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

  沒(méi)有重載

  由于JavaScript中的函數沒(méi)有函數簽名的特征,所以沒(méi)有重載,不過(guò)可以通過(guò)檢查傳入函數的參數的類(lèi)型和數量作出不同的反應來(lái)模擬重載。

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

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

對javascript的理解03-29

JavaScript的課堂講解03-31

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

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

常用的JavaScript模式03-10

Javascript的this用法簡(jiǎn)述03-25

JavaScript常用方法匯總03-08

高效編寫(xiě)JavaScript代碼的技巧03-10

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频