JavaScript是一种动态类型语言,这意味着变量的类型是在运行时确定的。JavaScript有几种基本数据类型,它们是构成更复杂数据结构的基础。 JavaScript操作符分为算术、赋值、比较、逻辑四大类。本文详细为大家介绍关于JavaScript操作符分类与功能。
一、JavaScript操作符分类与功能
JavaScript提供7类核心操作符,支持算术、赋值、比较、逻辑等运算:
算术操作符
+(加法/字符串拼接)、-(减法)、*(乘法)、/(除法)、%(取余)、**(指数)、++(递增)、--(递减)。
示例:
javascriptconsole.log(5 + 3); // 8console.log("Hello" + " " + "World"); // "Hello World"
赋值操作符
=(直接赋值)、+=(加后赋值)、-=(减后赋值)等复合操作符。
示例:
javascriptlet x = 10;x += 5; // x = 15
比较操作符
==(松散相等)、===(严格相等)、!=(松散不等)、!==(严格不等)、>(大于)、<(小于)等。
示例:
javascriptconsole.log(5 == "5"); // true(类型转换后比较)console.log(5 === "5"); // false(类型和值均需相同)
逻辑操作符
&&(逻辑与)、||(逻辑或)、!(逻辑非)。
示例:
javascriptconsole.log(true && false); // falseconsole.log(true || false); // true
位操作符
&(按位与)、|(按位或)、^(按位异或)、~(按位非)、<<(左移)、>>(右移)、>>>(无符号右移)。
示例:
javascriptconsole.log(5 & 3); // 1(二进制 0101 & 0011 = 0001)
字符串操作符
+ 用于字符串拼接,+= 用于追加字符串。
示例:
javascriptlet str = "Hello";str += " World"; // str = "Hello World"
其他操作符
三元运算符 ?:(条件判断)、typeof(类型检测)、instanceof(实例检测)。
示例:
javascriptconsole.log(typeof 42); // "number"console.log(5 > 3 ? "Yes" : "No"); // "Yes"
二、JavaScript基本数据类型
JavaScript数据类型分为原始类型(7种)和引用类型(1种):
原始类型(Primitive Types)
Number:整数、浮点数及特殊值(Infinity、-Infinity、NaN)。
示例:
javascriptlet num = 10.5;console.log(1 / 0); // Infinity
String:文本数据,用单引号、双引号或反引号包裹,支持模板字符串。
示例:
javascriptlet str1 = "Hello";let str2 = `World: ${str1}`; // "World: Hello"
Boolean:true 或 false,用于条件判断。
示例:
javascriptlet isActive = true;
Undefined:变量已声明但未赋值时的默认值。
示例:
javascriptlet x;console.log(x); // undefined
Null:表示“空值”或“无”,需显式赋值。
示例:
javascriptlet empty = null;
Symbol(ES6新增):唯一且不可变的标识符,用于对象属性键。
示例:
javascriptlet id = Symbol("unique");
BigInt(ES2020新增):表示任意精度的整数,后缀加 n。
示例:
javascriptlet bigNum = 123456789012345678901234567890n;
引用类型(Reference Type)
Object:键值对的集合,包括普通对象、数组、函数等。
示例:
javascriptlet person = { name: "Alice", age: 30 };let arr = [1, "two", true];
关键注意事项
动态类型:JavaScript变量类型可动态改变,如 let a = 10; a = "text";。
类型检测:
typeof 返回类型字符串(如 typeof "text" 返回 "string"),但 typeof null 返回 "object"。
instanceof 检测对象是否为某构造函数的实例。
隐式转换:
+ 两侧有字符串时,另一侧会转为字符串,如 5 + "10" 返回 "510"。
其他算术运算符会将数据转为数字,如 "10" - 2 返回 8。
严格相等:
=== 避免类型转换,推荐使用,如 5 === "5" 返回 false。
Null vs Undefined:
null 表示空值,需显式赋值;undefined 表示未初始化。
== 比较时 null == undefined 返回 true,但 === 返回 false。
位操作符处理二进制数据,如 &(按位与)、|(按位或)、<<(左移)等,常用于底层优化。展开/剩余操作符(...)用于数组或对象解构,如 const [first, ...rest] = [1, 2, 3]。这些操作符灵活组合可实现复杂逻辑。