JS语言是一种弱类型语言,其变量并不具备类型,而是它所代表的值具有类型,类型决定了值的行为特征。这就意味着我们定义的变量可以在程序运行过程中任意改动自己的值类型,如原本a的是number类型,但是之后承载了string类型的值,这是完全可以的,它不会像在C语言中一样报错。
在目前的JS语言中,有这几类数据类型:
number,string,boolean,undefined,null,object,symbol。
如何查看数据的类型:
我们可以使用typeof运算符来查看数据的类型,它会以string类型返回数据的类型。
验证数据类型时的一些特殊结果:
1.当我们使用typeof null来查看数据类型时,我们的预期结果是得到null,但是实际结果并不是null而是object。这是一个JS开发至今一直尚未解决的BUG。
2.typeof function a(){} 得到的结果为function。这是不是意味着function也是JS的内置类型呢?答案是否,function其实是object类型的子类型,我们也可以查看它的length属性,其返回值为参数的个数,除此之外,我们也可以为其设置属性值。
undefined与undeclared辨析:
undefined是指声明了未赋值的变量,而undeclared是指未声明过便进行使用的变量。但是在我们日常编程中,我们经常遇到的报错却是这样的:
变量 is not defined。
这往往使我们误解为变量未赋值而不是未声明。
那么我们该如何辨析这种情况呢?
使用if语句与typeof运算符进行错误抛出:
if (typeof 变量 !== "undefinend"){
console.log("变量正常")
}