JavaScript基础:运算符详解与常见误区
本文系统讲解JavaScript中的核心运算符,涵盖一元、二元及三元运算符的使用场景。重点解析前/后递增运算符的区别、相等(==)与等同(===)的底层逻辑,以及NaN的特殊行为。通过代码示例阐明对象引用比较、字符串逐字比较及in与instanceof运算符的实际应用,帮助开发者规避常见编码陷阱。
表达式与运算符基础
1. 表达式:
最基础的表达式由直接量或变量名构成。例如:var a = 1;
直接量表达式的计算结果即为其本身的值。
变量表达式的计算结果为该变量当前存储或引用的值。
2. 运算符:
一元运算符示例:-3
二元运算符示例:3+4
三元运算符示例:? :
递增运算符详解
新手常遇到的问题:
递增运算符:
具体示例如下:
i = 1;
j = ++i; // 前递增运算,即先对运算数进行递增,然后再去计算。
//输出 i = 2; j = 2;
i = 1;
j = i++; // 后递增运算,即先去计算,然后再对运算数进行递增。
//输出 i = 2; j = 1;
相等与等同运算符辨析
3. 相等运算符:
= :赋值运算符;
== :相等运算符;
=== :等同运算符;
值NaN永远不会与任何值相等,包括它自己。
alert(NaN == NaN); // false,NaN意为Not a Number
要检测一个值是否是NaN,可以使用全局函数isNaN();
另外新手要注意:
var a = [1, 2, 3];
var b = [1, 2, 3];
document.write(a == b); // 输出false。(这个其实是第一章讲的内容。)
// 虽然值相同,类型相同,但址不同。
--------------------------------------------------------
var a = [1, 2, 3];
var b = a;
var c = a;
document.write(b === c); // 输出true;
--------------------------------------------------------
var a = "1";
var b = true;
document.write(a == b); // 输出 true
document.write(a === b); // 输出 false;值相同,类型不同
字符串比较与大小写处理
4. 比较运算符:
要注意的就是字符串是进行逐个比较。
而且会区分大小写。
如果你的需求是不区分大小写:
可以使用 String.toLowerCase() //纯小写
String.toUpperCase() //纯大写 转换后,然后再去比较.
in与instanceof运算符
5. in 运算符:
要注意的是:左边的值是其右边对象的属性。
比如:
var a = { x: 1, y: 2 };
var b = "x" in a; // true
var c = "toString" in a; // true。左边的值是其右边对象的属性。
6. instanceof 运算符:
要注意的是:左边的运算数是一个对象,右边的运算数是对象类的名字。
比如:
var a = new Date()
a instanceof Date; // true
a instanceof Object; // true
a instanceof Number; // false
三元条件运算符
7. 3元条件运算符:
要注意的是:第一个运算数必须是一个布尔值。
X > 0 ? 3 : 2;
2下一页阅读全文
JS空字符串、null和undefined转数字的结果是什么
2026-11-05 14:49:16
CodePen、JSFiddle与StackBlitz:主流JS在线编辑器对比
2026-11-05 13:38:29
JS怎么将时间戳转换为“刚刚”、“几分钟前”等相对时间
2026-11-05 12:55:14
JavaScript将儒略日逆向还原为公历日期时间的实现方法
2026-11-04 23:51:05
能在我的世界手机版直接修改JS代码吗
2026-11-04 19:02:53








