阅读javascript高级程序设计随笔(二)

2.4数据类型

javascript中有5种基本数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂数据类型Object。

2.4.1 typeof操作符

对一个值使用typeof操作符可能返回以下字符串:

Ⅰ "undefined"   如果这个值没有定义

Ⅱ "boolean"     如果这个值是布尔值

Ⅲ "string"        如果这个值是字符串

Ⅳ "number"    如果职工值是数值

Ⅴ "object"      如果这个值是对象或者null

Ⅵ "function"    如果这个值是函数

如下是typeof操作符的例子:

<!doctype html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>typeof操作符使用</title>
</head>
<body>
</body>
<script type="text/javascript">
    var temp = "hello";
    alert(typeof temp);     // 'string'
    alert(typeof (temp));   //'string'
    alert(typeof 100);      //'number'
    alert(typeof a);       //'undefined'
    alert(typeof true);    //'boolean'

    var person = {
        name: "Petter"      
    };
    alert(typeof person);       //'object'
    person = null;
    alert(typeof person);       //'object'

    function add(){
        alert("a");
    }
    alert(typeof add);       //'function'
</script>
</html>

需要注意:typeof只是一个操作符而不是函数,因此它可以带小括号,也可以不带。Safari5及之前版本、Chrome7及之前版本在对正则表达式调用typeof操作符会返回"function",而其他浏览器在这种情况下会返回"object"。

2.4.2 undefined类型

Undefined类型只有一个值,就是undefined。在声明变量时并没有对其进行初始化时,这个变量的值是undefined。当变量没有被初始化时,变量的默认值为undefined。使用没有初始化的变量不会产生错误,但是使用没有定义的变量时,程序会报错。对于没有定义的变量,我们只能进行一个操作(typeof),而且返回undefined值。

例子:

 

<!doctype html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>未定义变量和未初始化变量区别</title>
</head>
<body>
</body>
<script type="text/javascript">
    var temp;

    alert(temp);  //undefined
    alert(a);     //产生一个Uncaught ReferenceError: a is not defined 的错误
    alert(typeof temp); //"undefined"
    alert(typeof a);  //"undefined"
</script>
</html>

 

2.4.3 Null类型

Null类型只有一个值,那就是null。从逻辑角度来看,null值表示一个空对象指针,所以使用typeof来检查null会返回"object"。对于用来保存对象的变量,一般初始化为null。

在进行undefined和null之间的相等操作符总是返回true;

例子:

<!doctype html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>未定义变量和未初始化变量区别</title>
</head>
<body>
</body>
<script type="text/javascript">
    if (null == undefined) {
        alert("null == undefined");
    };
</script>
</html>

3.4.4Boolean类型

Boolean类型只有两个值,就是true和false。注意是区分大小写的。

下表给出了各种类型及其对应的转换规则。


 数据类型             转换为true的值                 转换为false的值


 

Boolean             true                       false

String              任何非空字符串                  ""(空字符串)

Number             任何非零数字(包括无穷大)             0和NaN

Object              任何对象                     null

undefined             -----                      undefined


 

posted @ 2013-12-21 13:41  Night2013  阅读(225)  评论(0编辑  收藏  举报