1. 程式人生 > >JavaScript學習記錄之JS資料型別

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