JavaScript基础:typeof运算符、Object属性与类型检测详解

作者:小括号

时间:2026-10-27

浏览:605

本文系统梳理JavaScript核心基础概念,详解typeof操作符返回的六种数据类型字符串,解析Object实例的constructor、hasOwnProperty等关键方法。同时深入探讨逻辑非、乘除等运算符的隐式转换规则,以及利用typeof和instanceof进行基本类型与引用类型检测的具体实践与注意事项。

文章目录

typeof运算符与Object内置方法

typeof 操作符主要用于检测给定变量的数据类型。


具体使用方式如下所示:

 
var message="some string";
alert(typeof message); //"string"
alert(typeof(message)); //"string"
alert(typeof 100); //"number"

使用 typeof 操作符可能返回以下字符串结果:


"undefined"、"boolean"、"string"、"number"、"object"、"function"。



Object 的实例具备以下常用属性和方法:


constructor —— 保存用于创建当前对象的构造函数。


hasOwnProperty("属性名") —— 判断指定属性是否为当前对象自身的属性(而非继承自原型链)。


isPrototypeOf(对象名) —— 判断传入的对象是否为另一个对象的原型。


toString() —— 返回对象的字符串表示形式。


valueOf() —— 根据对象类型返回相应的原始值,其结果通常与 toString() 相同。



JavaScript运算符规则

3. 常见运算符行为


! 逻辑非运算


当操作数为对象时,返回 false。


当操作数为空字符串时,返回 true。


当操作数为非空字符串时,返回 false。


当操作数为数值 0 时,返回 true。


当操作数为非 0 的任意数值(包括 Infinity)时,返回 false。


当操作数为 null 时,返回 true。


当操作数为 NaN 时,返回 true。


当操作数为 undefined 时,返回 true。


* 乘法运算


若任一操作数为 NaN,则结果为 NaN。


Infinity * 0 的结果为 NaN。


Infinity * 非 0 数的结果为 Infinity 或 -Infinity。


Infinity * Infinity 的结果为 Infinity。


/ 除法运算


0 / 0 的结果为 NaN。


非 0 数 / 0 的结果为 Infinity 或 -Infinity。


==:相等判断;===:全等判断


相等(==):先将操作数转换为同一类型后再进行比较。


全等(===):要求操作数类型相同且值相等。



数据类型检测实践

4. 类型检测机制


基本类型通常通过 valueOf 或 typeof 进行检测。


示例代码如下:

 
var s ="ILoveYou";
var b = true;
var i = 10;
var u;
var n = null;
var o = new Object();
alert(typeof s); //string
alert(typeof i); //number
alert(typeof b); //boolean
alert(typeof u); //undefined
alert(typeof n); //object
alert(typeof o); //object

对于引用类型,通常使用 instanceof 运算符进行检测(返回 true 或 false)。


示例代码如下:

 
alert(person instanceof Object); // 判断变量person是否为Object实例?
alert(colors instanceof Arrary); //判断变量colors是否为Array实例?
alert(parttern instanceof Regexp); //判断parttern是否为Regexp实例?

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章