<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript">
// 字面量就是常量,不可變的量
// 變量,用var 聲明變量
// JS底層保存標識符實際上采用的是Unicode編碼,所以理論上所有utf-8的內容都可以用作標識符
// 也就是中文也可以當做標識符
var 年齡=18;
數據類型是字面量的類型 變量可以為任何類型
JS中有6中類型
基本數據類型:
String
var str="hello world"; //支持轉義字符
Number 整數+浮點數
整數運算可以基本保證正確
浮點數運算會存在誤差,不要對精確要求比較高的運算
var a=123; 數值
var b ="123"; 字符串
console.log(typeof a); //檢查數據類型
console.log(typeof b);
超過最大值,則是Infinity
var c = Infinity; //正無 窮
var d =NaN; //NaN是一個特殊數值, Not a Number
var e = 123+"233";
console.log(typeof Infinity); //Number
console.log(typeof e); //NaN
console.log(Number.MAX_VALUE); 1.797336565e+308 最大正數
console.log(Number.MIN_VALUE); 5e-324 最小正數
Boolean
Null:空對象 object Remember that null means “no value”,
Undefined: 未定義變量,聲明了變量但未賦值
引用數據類型:
Object
強制類型轉換
1。轉換成String
var a=123;
var b =true;
方法1:
var c = a.toString(); //調用Number類型變量a的toSting方法,返回它相應的字符串
var d = b.toString(); //調用boolean類型變量b的toSting方法,返回它相應的字符串
null和undefined沒有toString方法
var a = null; var c = a.toString() 會報錯
var a = undefined; var c = a.toString() 會報錯
方法2:
調用String函數,對Number、Boolean,Undefined,NULL都適用
var c = String(a); //c是字符串類型,a是Number
調用String的底層原理:
對於Number,Boolean底層調用的是toString()
對於Undefined和NUll底層直接將其轉成"undefined","null"
方法3:
res = null + ""; "null" 任何值加一個空串即可轉換成字符串,底層是String()函數實現
2.轉換成Number
方法1:
適用Number()函數
字符串 => 數字
1.字符數字字符串直接轉換成數字 "123" => 123
2.非字符數字字符串轉換成NaN "22adf" => NaN
3.空串或者空格串轉換成 0 " " => 0
Boolean => 0, 1
Null => 0
Undefined => NaN;
方法2:
parseInt() 把一個字符串中有效數字轉換為整數,從左至右
parseFloat() 把一個字符串中有效數字轉換為浮點數
var a = "123px";
a = parseInt(a); 從頭到尾取整數
對於非String類型的數據使用parseInt()操作時,會先把非String字符串,轉成字符串再操作,
例如: var a = true;
a = parseInt(a); 此時a的類型是NaN,此句等價於 parseInt("true")
方法3:、
任何值做 - * / 運算都會轉成Number,利用這個可以做隱式類型轉換
var a = '123'; a = a -0; 此時a就變成數字了,底層原理和Number()函數實現
方法4:
對於非Number值可以使用+將其轉換成Number,- 也可以,不過會改變其值
var a = '123'; a = +a; 此時a就變成數字了,底層原理和Number()函數實現
16進制 0x開頭
8進制 0開頭
2進制 0b開頭 某些瀏覽器不支持
var a = "070"; a = parseInt(a);
某些瀏覽器會把a解析成8進制數,某些瀏覽器會把a解析成10進制數
可以在parseInt()加上第二個參數,指定其進制
a = parseInt(a, 8); 所有瀏覽器都用8進制解析
JavaScript knows
how to convert the string “4” to the
number 4 when it needs to
3、轉換成Boolean
調用Boolean()
數字 => 布爾 0和NaN是false,其他數據都是true
var a =123;
a = Boolean(a)
字符串 => 布爾 空串是false,其他非空字符串是true (包含空格串)
null和undefined => false;
object => true
方式二(隱式類型轉換):
- 為任意的數據類型做兩次非運算,即可將其轉換為布爾值
- 例子:
var a = "hello";
a = !!a; //true
</script>
</head>
<body>
</body>
</html>