知識點
- 注釋:
//單行注釋
/*
多行注釋
*/
數據類型
在CS(Computer Science)中,數據便是一切。JavaScript總共支持7中數據類型。
undefined
:未定義;
null
:空對象;
boolean
:布爾型;
number
:數值型;
string
:字符型;
symbol
:符號;
object
:對象。變量
允許計算機以一種動態型式來存儲和操作數據;通過操作指向數據的指針,而非數據本身來避免內存泄漏。
JavaScript通過關鍵字var
來聲明變量,變量名由字符、數字、下劃線_
或美元符$
組成,推薦使用駝峰命名法:第一個單詞首字母小寫,以后每個單詞首字母大寫。變量初始化
通常在Initialize變量時,為變量賦予一個初始值,可以避免不必要的錯誤(在分配存儲空間時,變量所得到的空間中可能之前廢棄的垃圾值)。-
數值運算
支持+
、-
、*
、/
四則運算,%
取余運算:在數學中通過對2取余判斷一個數的奇偶。
++
:自增運算,i++ <=> i = i + 1
;
--
:自減運算,i-- <=> i = i - 1;
=:賦值運算,將
=`右邊的值賦予等號左邊的變量。賦值運算符的優先級低于算數運算。+=
、-=
、*=
、/=
復合運算符:
myVar = myVar + 5 <=> myVar += 5
;
myVar = myVar - 5 <=> myVar -= 5
;
myVar = myVar * 5 <=> myVar *= 5
;
myVar = myVar / 5 <=> myVar /= 5
字符串
字符串是用單引號或者雙引號包裹起來一連串的零個或多個字符。
需要在字符串中使用''
或者""
時,使用反斜杠加上引號\'
或者\"
可以使引號變為字符串中的字符(轉義)。
常見轉義字符:
\'
:單引號;
\"
:雙引號;
\n
:換行符;
\r
:回車符;
\t
:制表符;
\b
:退格;
\f
:換頁符
\\:反斜杠。
字符串的
+
運算:
連接+
操作符左右的兩個字符串,但是兩個字符串之間的空格需要自己處理(在字符串中加空格);
+
操作符一側操作數為數值型,另一側為字符串,所得到結果為字符串,自動將數字轉換為對應的字符。字符串的
+=
操作符:
原理與數值型相同,同理需要注意空格。格式化處理字符串:
使用+
連接字符串與字符串變量。
var str = "Kyxy Tracy"
var myStr = "Hello " + str + ", is there something wrong with you?"
- 字符串的方法:
.length
:返回字符串的長度(字符串中字符的個數);
JavaScript中只有字符串類型,沒有單獨的字符型。通過字符串的索引來訪問單個字符:myStr[index]
(索引從0開始計數)。
字符串的最后一個字符:myStr[myStr.length-1]
;
字符串的倒數第n個字符:myStr[myStr.length-n]
;
字符串是不可變對象(immutable),一旦被創建不能被修改:字符串被賦值給變量后,存儲空間中字符串的內容便不能被修改,但是可以重新為該變量賦值。(不可變的字符串的內容,字符串字面量String Literal)
- 數組Array
數組可以連續地在一處存儲多個數據。
定義一個數組:
var myArr = ["haha", 1, "xixi", 2, true]; //數組中可以存放不同數據類型的數據
數組的索引類似于字符串的索引,從0開始,訪問方式相同。
數組中的內容可以隨意改變,通過
myStr[n] = "wowo";
為數組相應位置上元素賦值即可改變數組的內容。
數組可以相互嵌套。數組的方法:
.push(parameter1, parameter2...)
:將括號中的參數一次添加到數組的末尾;
.pop()
:刪除數組最后一個元素,并返回其值;
.shift()
:刪除數組的第一個元素,并返回其值;
.unshift(parameter1, parameter2... )
:將括號中的參數一次添加到數組的首部;
var myArr = [1, 2, 3, 4];
myArr.push(5, 6); //myArr變為[1, 2, 3, 4, 5, 6]
myArr.pop(); //返回6,并且myArr變為[1, 2, 3, 4, 5]
myArr.shift(); //返回1,并且myArr變為[2, 3, 4, 5]
myArr.unshift("a", false); myArr變為["a", false, 2, 3, 4, 5]
- 函數Function:代碼的重用
定義:
function myFunction(parameter1, parameter2...) {
console.log("Hello world!"); //myFunction是函數名,parameter是形參
}
使用myFunction(parameter1, parameter2...)
來調用函數。定義函數時,parameter是形參,充當占位符。在調用函數時,傳入的參數為實參。
- 變量的作用域
作用域是變量作用的范圍,函數內部聲明以及函數的參數均是局部變量;
沒有使用var
關鍵字聲明的變量(會被自動創建全局作用域),以及在函數外定義的變量是全局變量;全局變量可以在代碼的任何地方被使用。建議聲明變量時均使用var
關鍵字。 - 在同一程序中,名稱相同的全局變量與局部變量,局部變量擁有更高的優先級。
- 使用參數向函數中傳入數據,使用
return
語句可以從函數中返回值,所以可以將函數的調用賦值給變量。
隊列queue
queue
是計算機科學中一種抽象的數據結構,隊列中的條目都有秩序,新的條目被添加到隊列的末端,舊的條目從隊列的頭部移出。
使用JavaScript實現隊列:(數組是有秩序的)
function queue(myArray, item) { //myArray是一個數組,item是數組的一個元素
myArray.push(item); //將item添加到數組的尾部
return myArray.shift(); //將myArray的頭部第一個元素,并且返回其值
}
testArr = [1, 2, 3, 4];
queue(testArr, 5); //返回值為1,testArr變為[2, 3, 4, 5]
- 布爾型
boolean
:
布爾型只有兩個值,true
和false
。
if語句
if
語句表明分支結構,當條件表達式成立時執行if
語句內的程序塊。
if(statement) { //當條件表達式為真時,執行code block;
code block; //代碼塊
}
- 條件表達式
在JavaScript
中,條件表達式由比較操作符和操作符兩邊的操作數構成。 -
==
相等操作符:比較兩邊操作數,先轉換為相同的數據類型,再比較是否相等;
{
1 == 1; //true
1 == "1"; //true
1 == 2; //false
"3" == 3; //true
}
-
===
全等操作符: