Undefined
未定義。只有一個(gè)值undefined
Null
只有一個(gè)值,null
Boolean
在javascript中,只要邏輯表達(dá)式不返回undefined不返回null,就都是真的。
復(fù)制代碼代碼如下:
if(3) true
if(null) false
if(undefined) false
Number
String
javascript中不存在char類型。
字符串定義可以用單引號(hào),也可以用雙引號(hào)。
復(fù)制代碼代碼如下:
<html>
<head>
<script type="text/javascript">
//var s="hello";
//alert(typeof s);//s是字符串類型
var s=new String("hello");//s 是對(duì)象類型
alert(typeof s);
</script>
</head>
<body>
</body>
</html>
typeof 是一個(gè)一元運(yùn)算符,用來(lái)獲得變量的數(shù)據(jù)類型 其返回值有五個(gè) undefined,boolean,number,string以及object.
其中前面四個(gè)都好理解。而最后一個(gè)object是讓程序員無(wú)從判斷的,只籠統(tǒng)的返回了object
在javascript中,如果函數(shù)沒有聲明返回值,那么會(huì)默認(rèn)返回undefined。
如果聲明了返回值,那么實(shí)際返回什么就是什么。
undefined從null派生,所以比較時(shí)返回true
alert(undefined==null);//true
強(qiáng)制類型轉(zhuǎn)換
在javascript中,有三種強(qiáng)制類型轉(zhuǎn)換:
Boolean(value)
Number(value)
String(value)
復(fù)制代碼代碼如下:
<html>
<head>
<script type="text/javascript">
var num=Number(3);
alert(num);
var s="hello";
alert(Boolean(s));
var s1=String("hello");
alert(typeof s1);
var obj=new String("hello");//這不是強(qiáng)制類型轉(zhuǎn)換!
alert(typeof obj);
</script>
</head>
<body>
</body>
</html>
在javascript中,所有的對(duì)象都繼承自O(shè)bject對(duì)象。
用new 的方式生成。
js中有些方法是可以枚舉出來(lái)的,有些是不行的。
用js內(nèi)置方法可以判斷,是否可以枚舉出來(lái)。
復(fù)制代碼代碼如下:
<html>
<head>
<script type="text/javascript">
var object=new Object();
for(var v in object){
console.log(v);
}
alert(object.propertyIsEnumerable("prototype"));//返回了false,表示沒有可以枚舉的屬性,也意味著子對(duì)象相應(yīng)的屬性也是不可以枚舉的
</script>
</head>
<body>
</body>
</html>
枚舉自定義類型的屬性
復(fù)制代碼代碼如下:
<html>
<head>
<script type="text/javascript">
var member=function(name,age){
this.name=name;
this.age=age;
}
var m=new member("liudh",50);
for(var v in m){
console.log(v);
//name
//age
}
alert(m.propertyIsEnumerable("prototype"));//false
//for(var v in window){
// console.log(v);
//}
</script>
</head>
<body>
</body>
</html>