標籤:最大值 script 子串 body val 變數 算術 16px 計算字串運算式
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,表示一個值並不是合法的數值形式,如字串(純數字字串除外)。這個數值比較特殊,它和任何數值都不相等,包括它自己在內,所以我們專門通過函數isNaN()來檢測這個值!
2. 字串型
JavaScript中沒有單獨的字元常量,而是有若干字元組成的字串常量
字串型常量必須使用單引號(‘‘)或雙引號("")將各組成字元括起來,如"ab","abook"
當一個字串不包括任何字元時,其形式為""或‘‘表示一個Null 字元串
在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和Null 字元串,而是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”) = 100parseInt(“+100.23abc”) = 100parseInt(“-100.23abc”) = -100parseInt(“0100.23abc”) = (0100)8 = 64parseInt(“100.23abc”,2) = (100)2 = 4parseInt(“100.23abc”,16) = (100)16 = 256parseInt(“100.23abc”,8)= (100)8 = 64
parseFloat(string)
該函數將string字串參數中最前面能夠構成實數的字串轉換為數值
當string字串收不不存在數字字串時,改函數最終返回NaN
parseFloat(“123.23abc”) = 123.23parseFloat(“+123.23abc”) = 123.23parseFloat(“-123.23abc”) = -123.23parseFloat(“123.23.34ab”) = 123.23parseFloat(“.123.23.34ab”) = 0.123parseFloat(“0123.adf”) = 123
eval(string_expression)
該函數將計算字串運算式的值並返回
如果字串不是一個合法的運算式,將會發生異常,我們可以通過try…catch語句來判斷此種情況的發生!
eval(“3+3+3+3+3*10”) = 42eval(“3+3+4+(3+2)*10”) = 60eval(“-3+4+3+4*10/2”) = 28eval(“3>2”) = trueeval(“3++34-2”) //將會引發異常!
JavaScript的基礎知識