μλ°μ€ν¬λ¦½νΈμμ κΈ°λ³Έ μν μ°μ°μ μλμ κ°μ λ¬Έλ²μ μ¬μ©ν΄ ννν μ μλ€.
λ³΄λ€ ν¬λ€, μλ€. | a > b , a < b |
λ³΄λ€ ν¬κ±°λ, μκ±°λ κ°λ€. | a >= b , a <= b |
κ°λ€, ( λλ± ) | a == b β λ±νΈ = κ° λ κ° μ°λ¬μ μ€λ κ²μ μ μνμ. a = b μ κ°μ΄ λ±νΈκ° νλμΌ λλ ν λΉμ μλ―Ένλ€. |
κ°μ§ μλ€. ( λΆλ± ) | a != b |
π λΆλ¦°ν λ°ν
λΉκ΅ μ°μ°μ μμ κ°μ λ°ννλ€. λ°ν κ°μ λΆλ¦°νμ΄λ€.
true κ° λ°νλλ©΄, ' κΈμ ', ' μ°Έ ', 'μ¬μ€ ' μ μλ―Ένλ€. |
false κ° λ°νλλ©΄, ' λΆμ ', ' κ±°μ§ ', ' μ¬μ€μ΄ μλ ' μ μλ―Ένλ€. |
alert( 2 > 1 ); // true
alert( 2 == 1 ); // false
alert( 2 != 1 ); // true
λ°νλ λΆλ¦°κ°μ λ³μμ ν λΉ ν μ μλ€.
let result = 5 > 4; // λΉκ΅ κ²°κ³Όλ₯Ό λ³μμ ν λΉνλ€.
alert( result ); // true
π λ¬Έμμ΄ λΉκ΅
μλ°μ€ν¬λ¦½νΈλ ' μ¬μ ' μμΌλ‘ λ¬Έμμ΄μ λΉκ΅νλ€. ' μ¬μ νΈμ§ ' ( lexicographical ) μμ΄λΌκ³ λΆλ¦¬κΈ°λ νλ μ΄ κΈ°μ€μ μ μ©νλ©΄ μ¬μ λ€μͺ½μ λ¬Έμμ΄μ μ¬μ μμͺ½μ λ¬Έμμ΄λ³΄λ€ ν¬λ€κ³ νλ¨λλ€.
μ€μ λ¨μ΄λ₯Ό μ¬μ μ μ€μ λ λ¨μ΄λ₯Ό ꡬμ±νλ λ¬Έμ νλνλλ₯Ό λΉκ΅νμ¬ λ±μ¬ μμλ₯Ό μ νλ κ²κ³Ό κ°μ΄ μλ°μ€ν¬λ¦½νΈλ λ¬Έμμ΄μ ꡬμ±νλ λ¬Έμ νλνλλ₯Ό λΉκ΅ν΄κ°λ©° λ¬Έμμ΄μ λΉκ΅νλ€.
alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true
λ¬Έμμ΄ λΉκ΅ μ μ μ©λλ μκ³ λ¦¬μ¦ μμ |
1. λ λ¬Έμμ΄μ 첫 κΈμλ₯Ό λΉκ΅νλ€. |
2. 첫 λ²μ§Έ λ¬Έμμ΄μ 첫 κΈμκ° λ€λ₯Έ λ¬Έμμ΄μ 첫 κΈμλ³΄λ€ ν¬λ©΄ ( μμΌλ©΄ ). 첫 λ²μ¬ λ¬Έμμ΄μ΄ λ λ²μ§Έ λ¬Έμμ΄λ³΄λ€ ν¬λ€κ³ ( μλ€κ³ ) κ²°λ‘ μ λ΄κ³ λΉκ΅λ₯Ό μ’ λ£νλ€. |
3. λ λ¬Έμμ΄μ 첫 κΈμκ° κ°μΌλ©΄ λ λ²μ§Έ κΈμλ₯Ό κ°μ λ°©μμΌλ‘ λΉκ΅νλ€. |
4. κΈμ κ° λΉκ΅κ° λλ λκΉμ§ μ΄ κ³Όμ μ λ°λ³΅νλ€. |
5. λΉκ΅κ° μ’
λ£λμκ³ λ¬Έμμ΄μ κΈΈμ΄λ κ°λ€λ©΄? => λ λ¬Έμμ΄μ λμΌνλ€κ³ κ²°λ‘ μ λΈλ€. λΉκ΅κ° μ’ λ£λμμ§λ§ λ λ¬Έμμ΄μ κΈΈμ΄κ° λ€λ₯΄λ©΄? => κΈΈμ΄κ° κΈ΄ λ¬Έμμ΄μ΄ λ ν¬λ€κ³ κ²°λ‘ μ λΈλ€. |
μ½λ μμμ 'z' > 'A' λ μ μκ³ λ¦¬μ¦μ 첫 λ²μ§Έ λ¨κ³μμ λΉκ΅ κ²°κ³Όκ° λμΆλλ€.
λ°λ©΄, 'Glow' μ 'Glee' λ 볡μμ λ¬Έμλ‘ μ΄λ£¨μ΄μ§ λ¬Έμμ΄μ΄κΈ° λλ¬Έμ, μλμ κ°μ μμλ‘ λ¬Έμμ΄ λΉκ΅κ° μ΄λ€μ§λ€.
1. G λ G μ κ°λ€.
2. I λ I μ κ°λ€.
3. o λ e λ³΄λ€ ν¬κΈ° λλ¬Έμ μ¬κΈ°μ λΉκ΅κ° μ’ λ£λκ³ , o κ° μλ 첫 λ²μ§Έ λ¬Έμμ΄ 'Glow' κ° λ ν¬λ€λ κ²°λ‘ μ΄ λμΆλλ€.
β μ ννλ μ¬μ μμ΄ μλλΌ μ λμ½λ μμ΄λ€.
μλ°μ€ν¬λ¦½νΈμ λ¬Έμμ΄ λΉκ΅ μκ³ λ¦¬μ¦μ μ¬μ μ΄λ μ νλ²νΈλΆμμ μ¬μ©λλ μ λ ¬ μκ³ λ¦¬μ¦κ³Ό μμ£Ό μ μ¬νμ§λ§, μμ ν κ°μ§ μλ€.
μ°¨μ΄μ μ€ νλλ μλ°μ€ν¬λ¦½νΈλ λ & μλ¬Έμλ₯Ό λ°μ§λ€λ κ²μ΄λ€.
λλ¬Έμ 'A' μ μλ¬Έμ 'a' λ₯Ό λΉκ΅νμ λ μλ¬Έμ 'a' κ° λ ν¬λ€.
μλ°μ€ν¬λ¦½νΈ λ΄λΆμμ μ¬μ©λλ μΈμ½λ© νμΈ μ λμ½λμμλ μλ¬Έμκ° λλ¬Έμλ³΄λ€ λ ν° μΈλ±μ€λ₯Ό κ°κΈ° λλ¬Έμ΄λ€.
μ΄μ κ΄λ ¨λ μμΈν λ΄μ©μ μκ³ μΆλ€λ©΄...
π λ€λ₯Έ νμ κ°μ§ κ° κ°μ λΉκ΅
λΉκ΅νλ €λ κ°μ μλ£νμ΄ λ€λ₯΄λ©΄ μλ°μ€ν¬λ¦½νΈλ μ΄ κ°λ€μ μ«μνμΌλ‘ λ°κΎΌλ€.
alert( '2' > 1 ); // true, λ¬Έμμ΄ '2'κ° μ«μ 2λ‘ λ³νλ ν λΉκ΅κ° μ§νλλ€.
alert( '01' == 1 ); // true, λ¬Έμμ΄ '01'μ΄ μ«μ 1λ‘ λ³νλ ν λΉκ΅κ° μ§νλλ€.
λΆλ¦°κ°μ κ²½μ° true λ 1 , false λ 0 μΌλ‘ λ³νλ ν λΉκ΅κ° μ΄λ€μ§λ€.
alert( true == 1 ); // true
alert( false == 0 ); // true
β μ΄λ° κ²½μ°λ μλ€.
λμμ μΌμ΄λμ§ μμ λ²ν λ μν©μ΄ μΌμ΄λλ κ²½μ°λ μλ€.
β λλ± λΉκ΅ ( == ) μ true λ₯Ό λ°ννλ€.
β λ Όλ¦¬ νκ° μ κ° νλλ true, λ€λ₯Έ κ° νλλ false λ₯Ό λ°ννλ€.
let a = 0;
alert( Boolean(a) ); // false
let b = "0";
alert( Boolean(b) ); // true
alert(a == b); // true!
λ κ° ( a μ b ) μ λΉκ΅νλ©΄ μ°Έμ΄ λ°νλλλ°, κ°μ λ Όλ¦¬ νκ°ν ν λΉκ΅νλ©΄ νλλ μ°Έ, νλλ κ±°μ§μ΄ λ°νλλ€λ μ μ μ΄μνλ€κ³ μκ°ν μλ μλ€.
κ·Έλ°λ° μλ°μ€ν¬λ¦½νΈ κ΄μ μμ μ΄λ° κ²°κ³Όκ° μμ°μ€λ½λ€.
λλ± λΉκ΅ μ°μ°μ == λ ( μμμμ λ¬Έμμ΄ " 0 " μ μ«μ 0 μΌλ‘ λ³νμν¨ κ²μ²λΌ ) νΌμ°μ°μλ₯Ό μ«μνμΌλ‘ λ°κΎΈμ§λ§,
' Boolean 'μ μ¬μ©ν λͺ μμ λ³νμλ λ€λ₯Έ κ·μΉμ΄ μ¬μ©λκΈ° λλ¬Έμ΄λ€.
π μΌμΉ μ°μ°μ
λλ± μ°μ°μ ( equality operator ) == λ 0 κ³Ό false λ₯Ό ꡬλ³νμ§ λͺ»νλ€.
alert( 0 == false ); // true
νΌμ°μ°μκ° λΉ λ¬Έμμ΄μΌ λλ κ°μ λ¬Έμ κ° λ°μνλ€.
alert( '' == false ); // true
μ΄λ° λ¬Έμ λ λλ± μ°μ°μ == κ° λ€λ₯Έ νΌμ°μ°μλ₯Ό λΉκ΅ν λ νΌμ°μ°μλ₯Ό μ«μνμΌλ‘ λ°κΎΈκΈ° λλ¬Έμ λ°μνλ€.
λΉ λ¬Έμμ΄κ³Ό false λ μ«μνμΌλ‘ λ³ννλ©΄ 0 μ΄ λλ€.
β 0 κ³Ό false λ μ΄λ»κ² ꡬλ³νμ£ ?
μΌμΉ μ°μ°μ ( strict equality operator ) === λ₯Ό μ¬μ©νλ©΄ ν λ³ν μμ΄ κ°μ λΉκ΅ν μ μλ€.
β μΌμΉμ°μ°μ
: μ격ν( strict ) λλ± μ°μ°μ μ΄λ€.
μλ£νμ λλ± μ¬λΆκΉμ§ κ²μ¬νκΈ° λλ¬Έμ νΌμ°μ°μ a μ b μ νμ΄ λ€λ₯Ό κ²½μ° a === b λ μ¦μ false λ₯Ό λ°ννλ€.
alert( 0 === false ); // false, νΌμ°μ°μμ νμ΄ λ€λ₯΄κΈ° λλ¬Έμ΄λ€.
μΌμΉ μ°μ°μ === κ° λλ± μ°μ°μ == μ μ격ν λ²μ μΈ κ²μ²λΌ 'λΆμΌμΉ' μ°μ°μ !== λ λΆλ± μ°μ°μ != μ μ격ν λ²μ μ΄λ€.
μΌμΉ μ°μ°μλ λλ± μ°μ°μλ³΄λ€ ν κΈμ λ κΈΈκΈ΄ νμ§λ§ λΉκ΅ κ²°κ³Όκ° λͺ ννκΈ° λλ¬Έμ μλ¬κ° λ°μν νλ₯ μ μ€μ¬μ€λ€.
π null μ΄λ underfined μ λΉκ΅νκΈ°
null μ΄λ underfined λ₯Ό λ€λ₯Έ κ°κ³Ό λΉκ΅ν λλ μμμΉ μμ μΌλ€μ΄ λ°μνλ€.
β μΌμΉ μ°μ°μ === λ₯Ό μ¬μ©νμ¬ null κ³Ό underfined λ₯Ό λΉκ΅νλ€.
=> λ κ°μ μλ£νμ΄ λ€λ₯΄κΈ° λλ¬Έμ μΌμΉ λΉκ΅ μ κ±°μ§μ΄ λ°νλλ€.
alert( null === undefined ); // false
β λλ± μ°μ°μ == λ₯Ό μ¬μ©νμ¬ null κ³Ό underfined λ₯Ό λΉκ΅νλ€.
=> λλ± μ°μ°μλ₯Ό μ¬μ©ν΄ null κ³Ό underfined λ₯Ό λΉκ΅νλ©΄ νΉλ³ν κ·μΉμ΄ μ μ©λΌ true κ° λ°νλλ€.
λλ± μ°μ°μλ null κ³Ό underfined λ₯Ό 'κ°λ³ν 컀ν' μ²λΌ μ·¨κΈνλ€.
λ κ°μ μκΈ°λ€λΌλ¦¬λ μ μ΄μΈλ¦¬μ§λ§ λ€λ₯Έ κ°λ€κ³Όλ μ μ΄μΈλ¦¬μ§ λͺ»νλ€.
alert( null == undefined ); // true
β μ°μ μ°μ°μλ κΈ°ν λΉκ΅ μ°μ°μ < , > , <= , >= λ₯Ό μ¬μ©νμ¬ null κ³Ό underfined λ₯Ό λΉκ΅νλ€.
=> null κ³Ό underfined λ μ«μνμΌλ‘ λ³νλλ€. null μ 0 , underfined λ NaN μΌλ‘ λ³νλ€.
μμμ μ΄ν΄λ³Έ μΈ κ°μ§ κ·μΉλ€μ΄ μ΄λ€ μμ§ μΌμ΄μ€ ( edge case ) λ₯Ό λ§λ€μ΄λ΄λμ§ λ³΄μ.
π€ null vs 0
null κ³Ό 0 μ λΉκ΅ν΄λ³΄μ.
alert( null > 0 ); // (1) false
alert( null == 0 ); // (2) false
alert( null >= 0 ); // (3) true
μ λΉκ΅ κ²°κ³Όλ λ Όλ¦¬μ λ§μ§ μμ 보μΈλ€.
(3) μμ null μ 0 λ³΄λ€ ν¬κ±°λ κ°λ€κ³ νκΈ° λλ¬Έμ, (1) μ΄λ (2) μ€ νλλ μ°Έμ΄μ΄μΌ νλλ° λ λ€ κ±°μ§μ λ°ννκ³ μλ€.
μ΄λ° κ²°κ³Όκ° λνλλ μ΄μ λ λλ± μ°μ°μ == μ κΈ°ν λΉκ΅ μ°μ°μ < , > , <= , >= μ λμ λ°©μμ΄ λ€λ₯΄κΈ° λλ¬Έμ΄λ€.
(1)μμ null > 0 μ΄ κ±°μ§μ, (3)μμ null >= 0 μ΄ μ°Έμ λ°ννλ μ΄μ λ ( κΈ°ν λΉκ΅ μ°μ°μμ λμ μ리μ λ°λΌ ) null μ΄ μ«μνμΌλ‘ λ³νλμ΄ 0 μ΄ λκΈ° λλ¬Έμ΄λ€.
κ·Έλ°λ° λλ± μ°μ°μ == λ νΌμ°μ°μκ° underfined λ null μΌ λ ν λ³νμ νμ§ μλλ€.
underfined μ null μ λΉκ΅νλ κ²½μ°μλ§ true λ₯Ό λ°ννκ³ , κ·Έ μ΄μΈμ κ²½μ° ( null μ΄λ underfined λ₯Ό λ€λ₯Έ κ°κ³Ό λΉκ΅ν λ ) λ 무쑰건 false λ₯Ό λ°ννλ€.
μ΄λ° μ΄μ λλ¬Έμ (2)λ κ±°μ§μ λ°ννλ€.
π€ λΉκ΅κ° λΆκ°λ₯ν underfined
underfined λ₯Ό λ€λ₯Έ κ°κ³Ό λΉκ΅ν΄μλ μλλ€.
alert( undefined > 0 ); // false (1)
alert( undefined < 0 ); // false (2)
alert( undefined == 0 ); // false (3)
μ μ½λλ₯Ό 보면 underfined λ 0 μ λ§€μ° μ«μ΄νλ κ²μ²λΌ 보μΈλ€. νμ false λ₯Ό λ°ννλ€.
μ΄λ° κ²°κ³Όλ μλμ κ°μ μ΄μ λλ¬Έμ λ°μνλ€.
- (1) κ³Ό (2) μμ underfined κ° NaN μΌλ‘ λ³νλλλ° ( μ«μνμΌλ‘μ λ°ν ) , NaN μ΄ νΌμ°μ°μμΈ κ²½μ° λΉκ΅ μ°μ°μλ νμ false λ₯Ό λ°ννλ€.
- underfined λ null μ΄λ underfined μ κ°κ³ , κ·Έ μ΄μΈμ κ°κ³Όλ κ°μ§ μκΈ° λλ¬Έμ (3)μ false λ₯Ό λ°ννλ€.
β ν¨μ νΌνκΈ°
μμ κ°μ μμ§ μΌμ΄μ€λ₯Ό μλμ κ°μ λ°©λ²μ μ¬μ©ν΄ μλ°©ν μ μλ€.
β μΌμΉ μ°μ°μ === λ₯Ό μ μΈν λΉκ΅ μ°μ°μμ νΌμ°μ°μμ underfined λ null μ΄ μ€μ§ μλλ‘ μ£Όμνμ.
β λν, underfined λ null μ΄ λ κ°λ₯μ±μ΄ μλ λ³μκ° < , > , <= , >= μ νΌμ°μ°μκ° λμ§ μλλ‘ μ£Όμνμ.
λ§μ½ λ³μκ° underfined λ null μ΄ λ κ°λ₯μ±μ΄ μλ€κ³ νλ¨λλ©΄, μ΄λ₯Ό λ°λ‘ μ²λ¦¬νλ μ½λλ₯Ό μΆκ°νμ.
< μμ½ >
β λΉκ΅ μ°μ°μλ λΆλ¦°κ°μ λ°ννλ€.
β λ¬Έμμ΄μ λ¬Έμ λ¨μλ‘ λΉκ΅λλλ°, μ΄λ λΉκ΅ κΈ°μ€μ 'μ¬μ ' μμ΄λ€.
β μλ‘ λ€λ₯Έ νμ μ κ°μ λΉκ΅ν λ μ«μνμΌλ‘ ν λ³νμ΄ μ΄λ£¨μ΄μ§κ³ λ ν λΉκ΅κ° μ§νλλ€. ( μΌμΉ μ°μ°μλ μ μΈ )
β null κ³Ό underfined λ λλ± λΉκ΅ ( == ) μ μλ‘ κ°μ§λ§ λ€λ₯Έ κ°κ³Όλ κ°μ§ μλ€.
β null μ΄λ underfined κ° λ νλ₯ μ΄ μλ λ³μκ° > λλ < μ νΌμ°μ°μλ‘ μ¬ λλ μ£Όμλ₯Ό κΈ°μΈμ΄μ.
null , underfined μ¬λΆλ₯Ό νμΈνλ μ½λλ₯Ό λ°λ‘ μΆκ°νλ μ΅κ΄μ λ€μ΄μ.