JavaScript是一種動態(tài)類型語言,這意味著變量的類型是在運行時確定的。JavaScript有幾種基本數(shù)據(jù)類型,它們是構成更復雜數(shù)據(jù)結構的基礎。 JavaScript操作符分為算術、賦值、比較、邏輯四大類。本文詳細為大家介紹關于JavaScript操作符分類與功能。
一、JavaScript操作符分類與功能
JavaScript提供7類核心操作符,支持算術、賦值、比較、邏輯等運算:
算術操作符
+(加法/字符串拼接)、-(減法)、*(乘法)、/(除法)、%(取余)、**(指數(shù))、++(遞增)、--(遞減)。
示例:
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基本數(shù)據(jù)類型
JavaScript數(shù)據(jù)類型分為原始類型(7種)和引用類型(1種):
原始類型(Primitive Types)
Number:整數(shù)、浮點數(shù)及特殊值(Infinity、-Infinity、NaN)。
示例:
javascriptlet num = 10.5;console.log(1 / 0); // Infinity
String:文本數(shù)據(jù),用單引號、雙引號或反引號包裹,支持模板字符串。
示例:
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新增):表示任意精度的整數(shù),后綴加 n。
示例:
javascriptlet bigNum = 123456789012345678901234567890n;
引用類型(Reference Type)
Object:鍵值對的集合,包括普通對象、數(shù)組、函數(shù)等。
示例:
javascriptlet person = { name: "Alice", age: 30 };let arr = [1, "two", true];
關鍵注意事項
動態(tài)類型:JavaScript變量類型可動態(tài)改變,如 let a = 10; a = "text";。
類型檢測:
typeof 返回類型字符串(如 typeof "text" 返回 "string"),但 typeof null 返回 "object"。
instanceof 檢測對象是否為某構造函數(shù)的實例。
隱式轉換:
+ 兩側有字符串時,另一側會轉為字符串,如 5 + "10" 返回 "510"。
其他算術運算符會將數(shù)據(jù)轉為數(shù)字,如 "10" - 2 返回 8。
嚴格相等:
=== 避免類型轉換,推薦使用,如 5 === "5" 返回 false。
Null vs Undefined:
null 表示空值,需顯式賦值;undefined 表示未初始化。
== 比較時 null == undefined 返回 true,但 === 返回 false。
位操作符處理二進制數(shù)據(jù),如 &(按位與)、|(按位或)、<<(左移)等,常用于底層優(yōu)化。展開/剩余操作符(...)用于數(shù)組或對象解構,如 const [first, ...rest] = [1, 2, 3]。這些操作符靈活組合可實現(xiàn)復雜邏輯。