JavaScript基礎知識從淺入深理解(一)
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中的swich:swicht(各種數據類型),比對時采用 === 進行判斷,要求數據類型完全想等。
函數的聲明與調用
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基礎知識從淺入深理解(一)