标签:
我们接触的绝大多数程序语言来说,把数据都进行了分类,包括数字、字符、逻辑真假:int,long,string,boolean....等等;我们都知道计算机对数据处理时是采用二进制的方式。将数据加载到内存中,并且通过CPU调度进行计算得到最终结果,那么,难道内存存储数据时会记录所以数据的类型吗?我认为答案是否定的,内存中的数据应该会根据所占内存的大小来进行区分和计算的,两种不同类型数据的计算,对于CPU来说只是调度了两个所占内存大小不一的数据来进行计算,所以对于CPU来说,数据只有1和0。那么这里就出现了问题,有些人会说Java语言某两种数据不能直接计算,必须转换才能计算。这里,就是强类型和弱类型的区别,强类型语言会对每一种数据进行严格的检查,也就是对于每种类型内存所占空间进行检查,如果不符合要求,就不允许编译或者运行。弱类型则没有对数据进行严格的检查,允许大多数数据类型直接进行计算,JavaScript属于弱类型。
包括以下几种:
通过以上这6中类型,就能将数据进行分类了,对于数据的容器JavaScript统一用关键字 var 声明,那么如何确定一个变量是那种类型呢?这就要用到关键字 typeof
这里,需要说明的是 typeof 是一个操作符(类似+、-、*、/) 而非 function 你可以直接 typeof a 使用(尽管这样不推荐)。而 null 和 undefined 在比较大小时是相等的。因为 undefined 派生自 null。
下边是 typeof 的举例
1 var mesage=‘some string‘; 2 var obj=new Object(); 3 var a; 4 alert(typeof message);//‘string‘ 5 alert(typeof(message));//‘string‘ 6 alert(typeof(95));//‘number‘ 7 alert(typeof(a));//‘undefined‘ 8 alert(typeof(null==undefined));//‘boolean‘ 9 alert(null==undefined);//‘true‘ 10 alert(obj);//‘object‘ 11 alert(null);//‘object‘(在不同浏览器中也可能为‘null‘)
标签:
原文地址:http://www.cnblogs.com/duihuayuqiu/p/4309728.html