1. 資料類型
雖然JS裡面可以直接寫
<script>
a=1;
b="2";
</script>
1
2
3
4
但是實際上js的所有變量/常量都是有類型的。
JS所有的資料類型分為5類
string 字元串類型
number 數字類型
boolean 布爾類型
object 對象類型 (需要注意的是null是對象類型的空值)
function 函數類型
undefined (未定義,不知道是什麼資料類型)
5
6
2. undefined和null的差別
null是有類型的,隻是沒有值(值為空),而undefined直接連類型都沒有(類型為未定義類型)
比如
console.log(typeof(a));//number
a=null;
console.log(typeof(a));//object
console.log(typeof(b));//undefined
從上面也可以看出,其實JS中一切都是對象哦,再舉一個神奇的例子,
function test(){
var x = "123";
var y = new String("123");
console.log(x ==y);// 結果為 true 都是值為"123"的字元串
console.log(x === y);// 結果為 false,因為 x 是字元串,y 是對象
}
3. typeof判斷類型
typeof函數可以傳回對象的類型:
function test(){
console.log(typeof("123"));// 傳回 string
console.log(typeof(123));// 傳回 number
console.log(typeof(true));// 傳回 boolean
console.log(typeof([1,2,3]));// 傳回 object
console.log(typeof({name:"maoge"}));// 傳回 object
console.log(typeof(function(){}));// 傳回 function
console.log(typeof(x));// 傳回 undefined
console.log(typeof(null));// 傳回 object
7
8
9
10
判斷相等
===成立,必須typeof的類型相同,值也相同
==僅判斷值,如果類型不同會轉換類型
console.log(1==="1");//false
console.log(1=="1");//true
4. 局部變量和全局變量
規則:
函數内部使用var聲明:局部變量
函數外部使用var聲明:全局變量
未使用var聲明:全局變量(無論是否在函數内部)
還是建議統一先用var聲明了再使用!