数据类型检测
在开发中,当不确定一个变量或值是什么数据类型的时候,可以利用typeof运算符进行数据类型检测。示例代码如下。
console.log(typeof 12); // 输出结果:number
console.log(typeof '12'); // 输出结果:string
console.log(typeof true); // 输出结果:boolean
console.log(typeof undefined); // 输出结果:undefined
console.log(typeof null); // 输出结果:objectjavascript
在上述示例中,typeof检测null值时返回的是object,而不是null,这是JavaScript最初实现时的历史遗留问题,后来被ECMAScript沿用下来。
使用typeof可以很方便地检测变量的数据类型,示例代码如下。
var age = prompt('请输入您的年龄');
console.log(age)
console.log(typeof age);
上述代码执行后,如果用户什么都不输入,单击“确定”按钮,则age的值为空字符串,类型为string。如果单击“取消”按钮,则的值为null,类型为object。如果输入的是一个数字,则age的值是用字符串保存的数字,类型为string。
typeof运算符的返回结果是一个字符串,可以使用比较运算符“==”来判断typeof返回的检测结果是否符合预期,示例代码如下。
var a = '12';
console.log(typeof a == 'string'); // 输出结果:true
console.log(typeof a == 'number'); // 输出结果:false
在上述代码中,“typeof a”的返回结果是string,在与字符串string比较时,结果为true,表示a是string类型;与number比较时,结果为false,表示a不是number类型。