ECMAScript是松散类型的,而typeof是用来检测变量的数据类型的,返回的结果都是字符串类型。
写法:typeof(1000); 圆括号可以省略。
-
var a = 123;
typeof(a) // “number” -
var a = “123”;
typeof(a) // “string” -
var a = true;
typeof(a) // “boolean” -
var a;
typeof(a) // “undefined”
b;
typeof(b)//“undefined”
由上可知,经过声明或未经声明的变量,在都没赋值的情况下,都是undefined。 -
var a = null;
typeof(a) // “object” -
var a = {name:“张三”};
typeof(a) // “object” -
var a = function fn(){};
typeof(a) // “function” 虽然检测函数的类型返回的是function,但其实函数的类型是object.
虽然typeof可以检测数据类型,但是有时候不准确,比如:
var s = [0,1]
console.log(typeof s);//返回"object"
而使用instanceof就更精准了
var s = [0,1]
console.log(s instanceof Array);//返回true
.