标签:
当说到JavaScript的数据类型时,好多做了很多年web的朋友甚至还不太清楚。这应该算是最基础的js知识了。我觉得有必要在这记录一下,方便自己和大家查看。
最基本的,js有五种数据类型:undefined,boolean,string,number,object(包含null)
一切声明了而未赋值的变量的值都是undefined。
var a; //typeof a结果为undefined
var a=true; //typeof a结果为boolean
var a=‘abc‘; //typeof a结果为string
var a=1; //typeof a结果为number
var a={}; //typeof a结果为object
var a=null; //typeof a结果为object:这是因为null被认为是不存在的对象的占位符
我们接着往下看:
undefined==null
你会发现上面这个等式的结果为true,这是为什么呢?这涉及到js最初设计时作者的一些顾虑,这里就不详细讲了,感兴趣的朋友可以去查资料,我们这里只做一个记录,简单的解释为undefined就是从null派生而来的。
当你用undefined===null比较时又会发现结果为false,这就是因为它们的初衷就不一样,undefined表示没有声明了但未初始化的值,但null表示不存在的对象。
也许,你悄悄的这样试了一下:
function f_test(){}
typeof f_test
结果为‘function‘
你会说你是不是少说了一种数据类型,这不是还有一种嘛。
刚开始我也有这样的疑问,但后来慢慢的明白了。
首先:函数不是数据,它只是处理数据的方法,所以不能称之为数据类型。
其次:即使我们不太负责任的认为它是数据,在以后的介绍中你也会明白函数和对象之间是有血缘关系的,因为函数的原型就是对象。
后面的介绍中我们会发现:js中一切皆为对象。
以上是我在工作学习中所学到的,理解的js的数据类型,希望对大家有所帮助,可能有的地方理解的还比较片面,欢迎大家批评指正,共同学习。
谢谢!
标签:
原文地址:http://www.cnblogs.com/xianlong/p/5054127.html