Language
string: プリミティブ文字列の === は値を比較する
JavaScript の文字列はプリミティブ値であり、別経路で作った同じ内容の文字列は === で等しくなります。
SourcestringEquality.ts
Node.js 22
export function sameText(left: string, right: string): boolean {
return left === right;
}TeststringEquality.test.ts
Node.js 22
import assert from "node:assert/strict";
import test from "node:test";
import { sameText } from "../../src/string/stringEquality.js";
test("同じ内容の文字列は===で等しい", () => {
assert.equal(sameText("Type", ["Ty", "pe"].join("")), true);
});01Assertion
このテストで確認できること
- 文字列リテラルと連結して作った文字列を比較する
- 文字列の === は内容が同じなら true になる
Java の String における参照比較とは異なり、JavaScript の string はプリミティブです。オブジェクト同士の === は依然として参照を比較します。
OBSERVED RESULT
expected: "Type" === ["Ty", "pe"].join("") → true
actual: true