JavaScript基础:typeof运算符、Object属性与类型检测详解
本文系统梳理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实例?JS语法错误会阻止加载吗?区分SyntaxError与资源加载失败
2026-11-05 16:08:46
JavaScript常见SyntaxError语法错误排查与修复方法
2026-11-05 13:58:44
JS中slice、substring和substr截取字符串的区别
2026-11-05 13:43:47
JS 转 TS 手动迁移最佳实践:从配置 tsconfig 到消除 any 类型
2026-11-05 11:53:32
为什么JS数组push后得到的是数字而不是数组?
2026-11-05 09:59:18
