變量
聲明
一個變量被重新復賦值后,它原有的值就會被覆蓋,變量值將以最后一次賦的值為准。
var age = 18;
age = 81; // 最后的結果就是81因為18 被覆蓋掉了
同時聲明多個變量
同時聲明多個變量時,只需要寫一個 var/let, 多個變量名之間使用英文逗號隔開。
let age = 10,
name = 'zs',
sex = 2;
特殊情況
情況 | 說明 | 結果 |
---|---|---|
var age; console.log(age) |
只聲明 沒賦值 | undefine |
console.log(age) |
不聲明 不賦值 直接使用 | 報錯 |
age = 10; console.log (age); |
不聲明 只賦值 | 10 |
命名規范
-
由字母(A-Za-z)、數字(0-9)、下划線(_)、美元符號( $ )組成,如:usrAge, num01, _name
-
嚴格區分大小寫。var app; 和 var App; 是兩個變量
-
不能 以數字開頭。 18age 是錯誤的
-
不能 是關鍵字、保留字。例如:var、for、while
-
變量名必須有意義。
-
遵守駝峰命名法。首字母小寫,后面單詞的首字母需要大寫。 myFirstName
數據類型
分類
JS 把數據類型分為兩類:
-
簡單數據類型
-
Number
-
String
-
Boolean
-
Undefined
-
Null
-
-
復雜數據類型 (object)
- 對象(Object)
- 數組(Array)
- 函數(Function)
數字型Number
JavaScript 數字類型既可以用來保存整數值,也可以保存小數(浮點數)。
var age = 21; // 整數
var Age = 21.3747; // 小數
進制
最常見的進制有二進制、八進制、十進制、十六進制。
// 1.八進制數字序列范圍:0~7
var num1 = 07; // 對應十進制的7
var num2 = 019; // 對應十進制的19
var num3 = 08; // 對應十進制的8
// 2.十六進制數字序列范圍:0~9以及A~F
var num = 0xA;
現階段我們只需要記住,在JS中八進制前面加
0
,十六進制前面加0x
NaN - 非數字值 、isNaN()
NaN 屬性是代表非數字值的特殊值。該屬性用於指示某個值不是數字、
isNaN用來判斷一個變量是否為非數字的類型,非數字返回true,數字返回false
數字可以是數字或者對象
數字可以私有數據進行初始化,就像 x = 123;
JavaScript 數字對象初始化數據, var y = new Number(123);
實例
var x = 123;
var y = new Number(123);
typeof(x) // 返回 Number
typeof(y) // 返回 Object
(x === y) // 為 false,因為 x 是一個數字,y 是一個對象
字符串型 String
布爾型 Boolean
布爾類型有兩個值:true 和 false
布爾型和數字型相加的時候, true 的值為 1 ,false 的值為 0。
console.log(true + 1); // 2
console.log(false + 1); // 1
Undefined 和 Null
一個聲明后沒有被賦值的變量會有一個默認值 undefined ( 如果進行相連或者相加時,注意結果)
var variable;
console.log(variable); // undefined
console.log('你好' + variable); // 你好undefined
console.log(11 + variable); // NaN
console.log(true + variable); // NaN
一個聲明變量給 null 值,里面存的值為空
var vari = null;
console.log('你好' + vari); // 你好null
console.log(11 + vari); // 11
console.log(true + vari); // 1
獲取變量的數據類型
typeof
可用來獲取檢測變量的數據類型
var num = 18;
console.log(typeof num) // 結果 number
數據類型轉換
使用表單、prompt 獲取過來的數據默認是字符串類型的,此時就不能直接簡單的進行加法運算,而需要轉換變量的數據類型。通俗來說,就是把一種數據類型的變量轉換成另外一種數據類型。
我們通常會實現3種方式的轉換:
- 轉換為字符串類型
- 轉換為數字型
- 轉換為布爾型
轉換為字符串
方式 | 案例 |
---|---|
toString | var num = 1; var str = num.toString; |
String()強制轉換 | String(num) |
加號拼接字符串 | num + "" |
轉換為數字型(重點)
方式 | 案例 |
---|---|
parseInt(str) | parseInt('12') |
parseFloat(str) | parseFloat('12.3') |
Number(str) | Number('12') |
隱式轉換(- * / ) |
'12' - 0 '12' * 1 '12' / 1 |
注意隱式轉換沒有加號,字符串用加號表示拼接字符串
轉換為布爾型
Boolean()
-
代表空、否定的值會被轉換為 false ,如 ''、0、NaN、null、undefined
-
其余值都會被轉換為 true
console.log(Boolean('')); // false
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined)); // false
console.log(Boolean('小白')); // true
console.log(Boolean(12)); // true