JavaScript 中 typeof 的返回值

来源:互联网 发布:可视化数据分析软件 编辑:程序博客网 时间:2024/05/16 12:09

JavaScript中有5中简单的数据类型:Undefined、Null、Boolean、Number、String,还有一种复杂数据类型:Object。JavaScript不支持创建自定义数据类型,因此所有的值都可归为上述6中类型中的一种。 

typeof 操作符

typeof是一元操作符,返回值为 Undefined、Boolean、Number、String 和 function 类型(function 属于 Object 类型, function instanceof  Object 返回 true )中的一种,用法如下:

    <script type="text/javascript">        var temp; //只声明未初始化        document.write("typeof temp: " + typeof temp + "<br/>"); //返回 undefined        document.write("typeof undefined: " + typeof undefined + "<br/>"); //返回 undefined        document.write("typeof true: " + typeof true + "<br/>"); //返回 boolean        document.write("typeof 11: " + typeof 11 + "<br/>");  //返回 number        document.write("typeof Number.MAX_VALUE: " + typeof Number.MAX_VALUE + "<br/>"); //返回 number        document.write("typeof 'abc': " + typeof "abc" + "<br/>"); //返回 string        document.write("typeof null: " + typeof null + "<br/>"); //返回 object        document.write("typeof window: " + typeof window + "<br/>"); //返回 object        document.write("typeof document: " + typeof document + "<br/>"); //返回 object        var test = function () {        };        document.write("typeof test: " + typeof test); //返回 function    </script>
这其中 typeof null 返回 object 可能会令人困惑,我们可以将其理解为 特殊值 null 是一个空的对象引用、一个空对象指针。

关于 null 和 undefined

如果我们要用一个变量保存对象,那么最好将该对象初始化为 null,这样我们可以直接检查变量是否等于null来判断变量是否保存了一个对象

<script type="text/javascript">        var bike;        alert(typeof bike); // 'undefined'        var car = null;        alert(typeof car); // 'object'        if (car != null) {            //对变量执行某些操作        }        //实际上、undefined 是派生自 null 值的 因此        alert(null == undefined);  // 'true'        //尽管如此 他们的用途是完全不同的,因此一个变量要保存对象的话,就应该明确的赋值 null        //而 undefined 却不必如此,这样更有助于区分两者    </script>
文章参考《javaScript高级程序设计》




0 0