JavaScript學習記錄之JS資料型別
學習目標:
1.認識JavaScript的資料型別
基本型別:undefined、unll、Boolean、Number、String 引用型別:object、function、Array
2.認識typeof操作符
- typefo:檢測變數的型別
- 語法:typeof變數 或 typeof(變數)
(變數本身是沒有型別的,它的型別取決於它的值)
<!DOCTYPE html> <html> <head> <title>資料型別</title> </head> <body> <script> // typeof var name = "marry"; alert(typeof(name)); //string </script> </body> </html>
3.理解undefined、null
- undefined 即為 未定義
<!DOCTYPE html>
<html>
<head>
<title>資料型別</title>
</head>
<body>
<script>
var age;
alert(age); //undefined
//宣告未賦值
</script>
</body>
</html>
- null:表示一個空的物件指標。
-如果需要某個變數來儲存將來的值,那麼最好的做法就是將該變數初始化為null
4.認識Number number:表示整數和浮點數 5.理解isNaN() NaN:即非數值(Not a Number)是一個特殊的數值
<!DOCTYPE html> <html> <head> <title>資料型別</title> </head> <body> <script> var age = 18; alert(age -3); //15 alert(age - "abc") //NaN //列印它的型別卻是number alert(typeof age - "abc") //number </script> </body> </html>
說明:
- 任何涉及NaN的操作(NaN+10)都會返回NaN
- NaN不與任何值相等,包括NaN本身 isNaN()語法: isNaN(n) - 檢測n是否為 “非數值”
說明:
- isNaN()對接收到的數值,會先嚐試轉換為數值,在檢測是否為非數值
<!DOCTYPE html>
<html>
<head>
<title>資料型別</title>
</head>
<body>
<script>
var age = 18;
alert(isNaN(age)) //false
</script>
</body>
</html>
6.掌握數值轉換 (1)- Number() 當轉換的值是string型別時,返回的則是NaN,因為無法得知string值轉換過來是多少 parseInt() 和 parseFloat()則是用來把字串轉換成數值的
<!DOCTYPE html>
<html>
<head>
<title>資料型別</title>
</head>
<body>
<script>
var age = "18";
alert(Number(name)) //18
</script>
</body>
</html>
(2)- parseInt() 說明:
- 會忽略字串前面的空格,直至找到第一個非空格字元(以數字開頭,否則返回NaN)
- 1、parseInt():轉換空字元返回NaN
- 2、parseInt()這個函式提供兩個引數:轉換時使用的基數(即多少進位制)
<!DOCTYPE html>
<html>
<head>
<title>資料型別</title>
</head>
<body>
<script>
var breadth = parseInt("50px");
alert(breadth) //50
var a = "a5";
alert(parseInt(a)); //NaN
alert(parseInt("0xf",16)); //轉換為16進位制
</script>
</body>
</html>
(3)- parseFloat() 說明: 從第一個字元開始解析每個字元,直至遇見一個無效的浮點數字符為止(以數字開頭,否則返回NaN)
- 1、除了第一個小數點有效外,其餘都無效
<!DOCTYPE html>
<html>
<head>
<title>資料型別</title>
</head>
<body>
<script>
var b = parseFloat("12.2px");
alert(b) //12.2";
var c = parseFloat("0.54aa");
alert(c) //0.54
</script>
</body>
</html>
7.JS中的string和boolean型別: string型別用於表示由零或多個16為Unicode字元組成的字元序列,簡單的說就是字串。需要用雙引號 (“Some writing”)或單引號(‘Some writing’) 來表示。
既然Number可以利用內建方法進行轉換,那字串固然也是可以的 toString()與String():
- toString:
語法:str.toString(),將str轉換為字串。 說明: 在不清楚值是否為null或undefined的情況下,儘量使用String()函式,它可以將任何型別的值轉換為字串。
<!DOCTYPE html>
<html>
<head>
<title>string</title>
</head>
<body>
<script type="text/javascript">
var id = 23;
var idstr = id.toString();
alert(idstr); //23
alert(String(idstr)); //String()用法
</script>
</body>
</html>
你可能會疑惑,這個輸出不也是數值嘛… 其實我們可以利用之前講過的typeof來檢測一下看他是不是string
<!DOCTYPE html>
<html>
<head>
<title>string</title>
</head>
<body>
<script type="text/javascript">
var id = 23;
var idstr = id.toString();
alert(typeof idstr); //string
alert(String(typeof idstr)); //String()用法
//不清楚型別使用
var m; //宣告未賦值
alert(String(m)) //undefined
</script>
</body>
</html>
Boolean: 用於表示真假的型別,只有兩個值,true(真)、false(假)。
型別轉換
- 除0之外的所有數字,轉換為布林型都為true(真)
- 除" "之外的所有字元,轉換為布林型都為true
- null和undefined轉換為布林型為false