JavaScript的基礎知識
1,標識符
標識符是程序中常量或變量命名的一種術語稱呼,並不是所有的字符組成都是一個合法的標識符,規範如下:
- 標識符的組成部分可以是字母,數字,下劃線或美元($)符號
- 標識符開頭是字母,下劃線或美元($)符號,而不能是數字
- 標識符不能出現一些特殊符號(如:¥,%,+)也不能存在空格
- 不能是JavaScript中的保留字(即關鍵字),如:var,new,if,else 等
- 標識符區分大小寫,myName和MyName是兩個不同的標識符
以下標識符是正確的:
myPencil myName _myAge $mySex xyz123 _123abc Var New
以下標識符時錯誤的:
123abc my+Name my,.Age var new
2.JavaScript中的數據類型
- 數值型(number)
整型
整型數據,即我們通常所說的整數,如:1、23、100、200等等。
整型數據可以是十進制、八進制和十六進行,默認采用的是十進制
如果需要表示八進制數據,則必須以數字0開頭。如八進制037,其十進制值為31。
如果需要表示十六進制數據,則必須以0x或0X開頭,其中0為數字零。如十六進制0x3D,其十進制值為61。
浮點型
浮點型數據,即我們通常所說的小數。如:3.14、12.34、100.5等等。
實型數據除了可以使用常用格式外,還可使用科學計數法來表示。如:8.2的8次方——8E+8;8.2的負8次方——8.2E-8。
特殊數值
Infinity:當一個正浮點型數據大於或等於其所能表示的最大值時(2的1024次方),則其結果是一個特殊的正無窮大,JavaScript將它標識為Infinity。
-Infinity:當一個負浮點型數據小於或等於其所能表示的最小值時(-2的1024次方),則其結果是一個特殊的負無窮大,JavaScript將它標識為- Infinity。
NaN:即Not a Number,表示一個值並不是合法的數值形式,如字符串(純數字字符串除外)。這個數值比較特殊,它和任何數值都不相等,包括它自己在內,所以我們專門通過函數
2. 字符串型
JavaScript中沒有單獨的字符常量,而是有若幹字符組成的字符串常量
字符串型常量必須使用單引號(‘‘)或雙引號("")將各組成字符括起來,如"ab","abook"
當一個字符串不包括任何字符時,其形式為""或‘‘表示一個空字符串
在JavaScript中,有些特殊的符號不能直接進行輸出,在此需要一種特殊的字符常量來表示,即轉義字符
轉義字符必須以反斜杠(\)開頭,後面跟一個或幾個特定的字符
轉義字符 |
Unicode碼 |
含義 |
\b |
\u0008 |
退格 |
\t |
\u0009 |
橫向跳到下一個制表位置 |
\n |
\u000A |
回車換行 |
\v |
\u000B |
豎向跳到下一制表位置 |
\f |
\u000C |
走紙換頁 |
\r |
\u000D |
回車 |
\” |
\u0022 |
雙引號 |
\’ |
\u0027 |
單引號 |
\\ |
\u005C |
反斜杠 |
\xnn |
|
十六進制代碼nn(00~FF)表示的字符。 |
\unnnn |
|
十六進制代碼nnnn(0000~FFFF)表示的Unicode編碼。 |
\x3c |
|
字符“<” |
\x3e |
|
字符“>” |
3,布爾型(boolean)
布爾值用於表示一個事物的正反面
該類型只有true和false,通常用於條件判斷語句
4,空值型(null)
這是一個值,null,表示一個變量所指向的對象為空值!
它表示“無值”,並不表示“null”這4個字母,也不是0和空字符串,而是JavaScript中的一種對象類型
null可用於初始化變量,以避免產生錯誤,也可以用於清除變量的內容,從而釋放與變量相關聯的內存空間。當把null賦值給某個變量後,這個變量中就不再保存任何有效的數據了!
5,未定義型(undefined)
這是一個值,undefined,表示變量未聲明或未初始化或對象的某個屬性不存在。
null表示賦給變量的值為“空”,“空”是一個特殊意義的值,而undefined則表示變量並未存在或未初始化,變量的值還處於未知狀態!
在使用等於運算符“==”的時候,null和undefined均和自己相等,同時互相之間也相等,但和其他任何值都不相等。
嚴格等於運算符“===”將null和undefined的值看做不相等。
3,JavaScript中數據類型的轉換
隱式轉換
數值字符串與數值相加,進行字符串的連接運算,最後結果為string類型
"123"+123 ="123123"
數值字符串與數值相減,進行算術減法運算,最後結果為number類型
"123"-123 = 0
字符串與其他任何類型的數據進行"+"運算,所進行的字符串的連接運算,最後的結果為string類型
null+”123”+undefined+”abc”+123+”fgh”+true = ”null123undefinedabc123fghtrue”
true與數值進行想加減,將自動轉換為1,然後參與運算,最後結果為number類型!
true+true+1 = 3
false與數值進行相加減,將自動轉換為0然後參與運算,最後結果為number類型!
true+false+1=2
null與null、null與數值相加減,null的值始終為0,最後結果為number!
null+null+1 = 1
undefined與數值相加減,最後的結果始終為NaN
null+undefined+true+1 = NaN
基本轉換
string()
將其他類型的值轉換為string類型
String(280)+ String(true) = “280true”
Number()
將可以轉換為數值的其他類型轉換為number類型
Number(”123”)+Number(true) +Number(false) +Number(null) = 124
Boolean()
將其他類型的值轉化為boolean類型!除了0、null、undefined、NaN、“”轉換後的結果為false外,其他的值都將被轉換為true。
String(“123”+Boolean(0)+Boolean(null)+Boolean(“ab”)) = “123falsefalsetrue”
提取轉換
parseInt(string,n)
該函數將string字符串參數中最前面能夠轉換成整型數值的子字符串轉換為數值!
其中參數n用來指定字符串參數將以什麽進制來進行轉換,可以是2、8、10、16以及2~32之間的任意數值,如果不指定該參數,則默認以10進制來進行轉換,轉換後的值都將以十進制的形式存在!(註意:當不指定n參數時,如果字符串的首字符為數字0,將會按照8進制進行轉換!)
當string字符串首部不存在數字子串時,該函數最終返回NaN!
parseInt(“100.23abc”) = 100 parseInt(“+100.23abc”) = 100 parseInt(“-100.23abc”) = -100 parseInt(“0100.23abc”) = (0100)8 = 64 parseInt(“100.23abc”,2) = (100)2 = 4 parseInt(“100.23abc”,16) = (100)16 = 256 parseInt(“100.23abc”,8)= (100)8 = 64
parseFloat(string)
該函數將string字符串參數中最前面能夠構成實數的字符串轉換為數值
當string字符串收不不存在數字字符串時,改函數最終返回NaN
parseFloat(“123.23abc”) = 123.23 parseFloat(“+123.23abc”) = 123.23 parseFloat(“-123.23abc”) = -123.23 parseFloat(“123.23.34ab”) = 123.23 parseFloat(“.123.23.34ab”) = 0.123 parseFloat(“0123.adf”) = 123
eval(string_expression)
該函數將計算字符串表達式的值並返回
如果字符串不是一個合法的表達式,將會發生異常,我們可以通過try…catch語句來判斷此種情況的發生!
eval(“3+3+3+3+3*10”) = 42 eval(“3+3+4+(3+2)*10”) = 60 eval(“-3+4+3+4*10/2”) = 28 eval(“3>2”) = true eval(“3++34-2”) //將會引發異常!
JavaScript的基礎知識