JavaScript数据类型学习--typeof 运算符

时间:2023-01-28 20:10:10

typeof 运算符 (JavaScript):返回一个用于标识表达式的数据类型的字符串。

typeof[(]expression[)] ;
expression 参数是其搜索类型信息的任何表达式。
typeof 运算符把类型信息以字符串形式返回。 typeof 返回六种可能的值:“数字”、“字符串”、“布尔值”、“对象”、“函数”和“未定义”。typeof 语法中的圆括号是可选的。

注:undefined 常量是 Global 对象的一个成员,该常量在脚本引擎初始化后变得可用。 如果已声明了一个变量但还未进行初始化,则其值为 undefined。我们没有必要显式的给一个变量赋值为undefined,因为没有赋值的变量会隐式的(自动的)赋值为undefined;而undefined 主要的目的是为了用于比较,引入之后为了正式区分空对象与未经初始化的变量。

var index = 5;
var result = (typeof index === 'number');
// Output: true

var description = "abc";
var result = (typeof description === 'string');

以下示例为声明的和未声明的变量测试 undefined 的数据类型。

var declared;
var result = (declared === undefined);
// Output: true

var result = (typeof declared === 'undefined');
// Output: true

var result = (typeof notDeclared === 'undefined')
// Output: true

var obj = {};
var result = (typeof obj.propNotDeclared === 'undefined');
// Output: true

// An undeclared variable cannot be used in a comparison without
// the typeof operator, so the next line generates an error.
// var result = (notDeclared === undefined);

var box;
alert(box)
alert(age)
上面的值一个undefined,一个报错,但是
alert(typeof box)
alert(typeof age)
二者返回类型都是undefined,由此引发思考,我们在定义变量的时候,尽可能的不要只声明,不赋值。

var box={};
if(box!=null) {
alert("对象已经创建成功")
}
var box=null;//表示还未创建对象,但先声明了对象引用而必须初始化的结果,你还没来的及创建对象,先声明一个对象的变量放在那里,默认初始化为null


隐式转换,当然还有显式转换(可以使用转型函数Boolean()),我们这里只谈隐式转换,如图:

JavaScript数据类型学习--typeof 运算符JavaScript数据类型学习--typeof 运算符

JavaScript数据类型学习--typeof 运算符

JavaScript数据类型学习--typeof 运算符 JavaScript数据类型学习--typeof 运算符 JavaScript数据类型学习--typeof 运算符 JavaScript数据类型学习--typeof 运算符 JavaScript数据类型学习--typeof 运算符 JavaScript数据类型学习--typeof 运算符 JavaScript数据类型学习--typeof 运算符 JavaScript数据类型学习--typeof 运算符