#4 Type Coercion
6338 ワード
📋 タイプコラボレーション(強制タイプ変換)
タイプ強制変換は、あるタイプから別のタイプに値を変換するプロセスです.
ex)文字列は数字、オブジェクトはBoolean
Primitiveもオブジェクトも、すべてのタイプが強制タイプの有効なトピックです.
📋 明示的強制
Javascriptはタイプ変換を強制と呼ぶため、暗黙的および明示的強制を区別します.
明示的強制
コードでは、タイプ変換は明らかに意図的です.
ex) Number(value), String(value)
暗示の強制
他のタイプ間で自動的に変換できます.
タイプ変換は、他の意図的な副作用によって発生する場合である.
let a = 42;
let b = a + ""; // 암시적 강제 implicit
let c = String(a); // 명시적 강제 explicit
console.log(25 - "1") // 24
console.log("" == true) // false 빈 String은 false
console.log(0 == true) // 0은 false
console.log(undefined,null,NaN == true) // false
console.log(true + false) // 1
console.log(12 / "6") // 2
console.log(15 + 4 + "number") // 19number
console.log([1] > null) // true
console.log({}+[]+{}+[1]) // '0[object Object]1'
==このbooleanに遭遇すると、数値に変換されます.
console.log("1" == 1) // true
console.log("true" == true) // false
💡 ===暗黙的強制(強制規則)は回避できます。
console.log("1" === 1) // false
console.log(true === 1) // false
Reference
この問題について(#4 Type Coercion), 我々は、より多くの情報をここで見つけました
https://velog.io/@wjdghks963/4-Type-Coercion
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
let a = 42;
let b = a + ""; // 암시적 강제 implicit
let c = String(a); // 명시적 강제 explicit
console.log(25 - "1") // 24
console.log("" == true) // false 빈 String은 false
console.log(0 == true) // 0은 false
console.log(undefined,null,NaN == true) // false
console.log(true + false) // 1
console.log(12 / "6") // 2
console.log(15 + 4 + "number") // 19number
console.log([1] > null) // true
console.log({}+[]+{}+[1]) // '0[object Object]1'
console.log("1" == 1) // true
console.log("true" == true) // false
console.log("1" === 1) // false
console.log(true === 1) // false
Reference
この問題について(#4 Type Coercion), 我々は、より多くの情報をここで見つけました https://velog.io/@wjdghks963/4-Type-Coercionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol