1. 程式人生 > >JavaScript基礎知識從淺入深理解(一)

JavaScript基礎知識從淺入深理解(一)

isn argument javascrip turn console bom || 將不 函數聲明

JavaScript的簡介

  javascript是一門動態弱類型的解釋型編程語言,增強頁面動態效果,實現頁面與用戶之間的實時動態的交互。

  javascript是由三部分組成:ECMAScript、DOM、BOM

    ECMAScript由ECMA-262定義,提供核心語言功能(ECMA是歐洲計算機制造商協會)

    DOM(Document Object Model)文檔對象模型,提供訪問和操作網頁內容的方法和接口

    BOM(Browser Object Model)瀏覽器對象模型,提供與瀏覽器交互的方法和接口

1.使用JS的三種方式以及註釋

//(1)直接在HTML標簽中,直接使用時間屬性,調用JS代碼
<button onclick="alert(‘點我呀‘)">點我呀!</button> //(2)在頁面的任意位置使用script標簽插入JS代碼。 <script type="text/javascript"> alert(123) </script> //(3)引入外部JS文件。可以把腳本保存到外部文件中。外部文件通常包含被多個網頁使用的代碼。外部 JavaScript 文件的文件擴展名是 .js。 <script src="01.js" type="text/javascript"></script>

註意:

  1.JS代碼可以放在頁面的任意位置使用,但是放置的位置不同,將影響JS執行的順序。

  2.引入外部JS文件的script標簽,不能再包含任何的JS代碼。

JS的註釋

//單行註釋   Ctrl+/
/* 多行註釋 Ctrl+Shift+/     */

JS中的基礎知識

1.JS中的變量:

  (1)變量的聲明: 使用var關鍵字聲明.var num = 1;

  (2)變量可以不聲明也可以直接賦值: num = "哈哈哈哈";

  (3)使用一行代碼聲明多個語句:var a=1,b=1,c。其中b為undefinde。

  區別:使用var聲明的變量屬於局部變量,只在當前作用域有效(相當於局部變量),不用var聲明的變量默認是全局變量,在整個JS文件可以用。

2.JS中變量聲明的註意事項

  (1)JS中聲明變量的關鍵字只有var一個,變量的類型取決與賦值的類型。如果聲明後未賦值,則為undefined類型。

  (2)JS中同一個變量,可以在多次賦值中,被修改數據類型。var a=1; a="dddd"

  (3)變量可以使用var聲明,也可以直接賦值聲明。(var聲明的作用域為局部變量)

  (4)在JS中一個變量可以多次使用var聲明,後面的聲明相當於直接賦值,沒有任何卵用。

  (5)JS變量區分大小寫,大寫和小寫不是同一個變量。

3.JS中的數據類型

  (1)undefinde:使用var聲明但是沒有賦值的變量。

  (2)null : 表示空的引用。

  (3)Boolean:真假

  (4)Number:在JS中數值類型包括整形和浮點型。

  (5)String:字符串

  (6)Object:對象

4.常用數值函數

  (1)isNaN:用於檢測一個變量是不是非數值(Not a Number)。在檢測時會先調用Number函數,嘗試將變量轉換成數值類型,如果最終結果能夠轉為數值,則不是NaN。
  (2)Number函數:將各種數據類型轉換成數值類型。
    >>> Undefined:無法轉換,返回NaN。
    >>> null:轉為0
    >>> boolean:true轉為1,false轉為0
    >>> String:如果字符串是純數值字符串,則可以轉換;如果字符串包含非數值字符,則不能轉換,返回NaN。如果是空字符串轉為0。
  (3)parseInt():將字符串轉換成數值類型。
    >>> 如果是空字符串,不能轉。""-->NaN
    >>> 如果是純數值類型字符串,可以進行轉換,且小數點直接舍去不保留。"12.3"-->12
    >>> 如果字符串包含非數值字符,則將非數值字符前邊的整數進行轉換。"123a"-->123 ; "a123"-->NaN
  (4)parseFloat:轉換機制與parseInt相同。
    不同的是,轉換數值字符串時,如果字符串為小數則可以保留小數點,整數型沒有小數點。"123"-->123 "123.3"-->123.3
  (5)typeOf():檢測一個變量的數值類型
  字符串-->String 數值-->Number true/false-->Boolean 未定義-->undefind 對象/null-->object 函數-->function

5.JS中常用的輸入輸出語句

  (1)alert():彈窗輸出

  (2)prompt(a,b):彈窗輸入。接收兩個部分:a--提示內容;b--輸入框的默認文本。(兩部分都可以省略)。輸入的內容默認都是字符串。

  (3)document.write():在瀏覽器頁面中打印輸出。

  (4)console.log():瀏覽器控制臺打印。

6.JS中的運算符(與Java類似,這裏就只講述不同的地方)

技術分享圖片

與Java不同的:

  (1)除號: 無論符號兩邊是整數還是小數,除完後都將按照實際結果保留小數。(22%10=2.2)

  (2)===:絕對等於(數值和數據類型必須相同),而==至判斷兩邊數據是否相同,並不關心兩邊的數據類型是否相同。

  (3)& 和 | :只能進行按位運算,如果兩邊不是數值類型,將轉換成數值後在運算。

  (4)&& 和 ||:只能進行邏輯運算。

JS中的if

  (1)boolean : true為真,false為假

  (2)數值類型:0為假,非0為真

  (3)字符串類型:空字符串為假,非空字符串為真

  (4)null/undefined/NaN:全為假

  (5)Object:對象全為真

JS中的swichswicht(各種數據類型),比對時采用 === 進行判斷,要求數據類型完全想等。

函數的聲明與調用

1.JS中函數聲明的格式

function 函數名(參數1,參數2,.....){
    //函數體代碼
    return 返回值;
}

2.函數的調用:

  (1)直接調用: 函數名(參數1,參數2,.....)

  (2)通過事件調用:在HTML標簽中,通過事件屬性進行調用。

註意事項:

  (1)函數中有沒有返回值,只取決於函數有沒有return,無需可以聲明。在JS中,有返回值可以不接收;沒有返回值,也可以接收,結果為Undefined。

  (2)JS中函數的形參列表與實參列表沒有任何關聯,也就是說有參數可以不賦值,沒有參數也可以賦值。未賦值的參數是undefined。函數的實際參數列表取決於實參列表。

  (3)JS中函數是變量的唯一作用域。(除了函數,其他方式都沒有作用域,也就是都是全局變量)。函數的形參屬於局部變量。

  (4)函數的聲明與調用語句沒有先後之分,即,可以先寫調用語句,在聲明函數。

3.自執行函數

(1)!function(){}();//開頭使用!表明這是自執行函數。
(2)(function(){}())//用()將匿名函數聲明與調用包裹。
(3)(function(){})()//用()將匿名函數聲明語句進行包

註意:函數的調用語句必須放在聲明語句之後。

[JS代碼的執行順序]

  JS的代碼執行分為兩個階段:檢查編譯階段和代碼執行階段。

  檢查編譯階段:主要檢查語法錯誤, 進行變量的聲明、函數的聲明等聲明操作。

  代碼執行階段:變量的賦值、函數的調用等執行語句,屬於代碼執行階段。

4.arguments對象

  1、作用:用於保存函數的所有實參。

      >>>當函數存在實參時,可以使用數組下標訪問函數的所有實參。alert(arguments[6])

  2、arguments中的元素的個數取決於實參列表,與形參個數無關。

  3、一旦函數調用時,傳入了實參,那麽對應位數的形參,將於arguments對應的元素進行綁定,修改形參,arguments中對應的元素將被改掉,反之也成立。但是,如果某一位置沒有傳入形參,則形參和arguments將不進行關聯。

  arguments.callee(): 指向當前函數的引用,用於在函數中使用遞歸調用自身。

JavaScript基礎知識從淺入深理解(一)