(1)js的类型检查
其实会js的人都知道,js是宽松类型的动态语言,我们可以不用显式的定义变量的数据类型。但实际上,我们使用已定义的变量时,总是会适时的检查它的类型是否符合我们的需要,以做出不同的行为。
js本身提供了typeof()函数来检查变量的类型,但它的返回值不外乎6种:
l "number,"
l "string,"
l "boolean,"
l "object,"
l "function,"
l "undefined."
下面是一些测试代码的输出结果
var a = new Date();
print(typeof(a));
输出: object
var b;
print(typeof(b));
输出: undefined
print(typeof(1.12));
输出: number
print(typeof(88));
输出: number
print(typeof(a==b));
输出: boolean
print(typeof("hello"));
输出: string
(2)检查变量是属于哪种具体的变量类型,而不仅仅是得到object这个结果
我们可以这样写代码:
var a = new Date();
print(a.constructor == Date)
输出: true
constructor是所有prototype对象所共有的属性。上面这种方式是通过比较此对象的构造函数是否与给定的对象相等来进行对象类型检查的,此种方式我们要事先知道可能的对象类型。所以如果要检查变量可能属于哪种对象类型,要采用if-else这样的语句结构:
if(a.constructor == Array)
print("a is Array");
else if(a.constructor == String)
print("a is String");
else if (a.constructor == Date)
print("a is Date");
(3) 检查变量是否为空