๐Ÿคฉ ์žฌ๋ฏธ์žˆ๋Š” javascript ์˜ˆ์ œ 1

chloeยท2021๋…„ 9์›” 9์ผ
0

Javascript

๋ชฉ๋ก ๋ณด๊ธฐ
12/13
post-thumbnail

๐Ÿ˜€ ๋ฌด๊ถ๋ฌด์ง„ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์„ธ๊ณ„์— ๋น ์ ธ๋ณด์ž!

1.[]์™€ ![]์€ ๊ฐ™๋‹ค.

[] ==![] =>true

์œ„ ํ‘œํ˜„์‹์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‹จ์ˆœํ™”๋  ์ˆ˜ ์žˆ๋‹ค.

+[]==+![];
0 == +false;
0 == 0'
true;

์ถ”์ƒํ•ญ๋“ฑ ์—ฐ์‚ฌ์ž๋Š” ์–‘์ชฝ์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋น„๊ตํ•˜๊ณ  ์„œ๋กœ ๋‹ค๋ฅธ ์ด์œ ๋กœ ๊ฒฐ๊ตญ ์–‘์ชฝ์˜ ์ˆซ์ž๋Š” 0์ด ๋œ๋‹ค.

2.true๋Š” ![]์™€ ๊ฐ™์ง€ ์•Š์ง€๋งŒ, []์™€๋„ ๊ฐ™์ง€ ์•Š๋‹ค.

true == []; => false
true == ![]; => false
false == []; =>true
false == ![]; ==>true

  • true์™€ []์€ ๊ฐ™์ง€ ์•Š๋‹ค.
toNumber(true) => 1
 toNumber([])=> 0
  • true์™€ ![]์€ ๊ฐ™์ง€ ์•Š๋‹ค.
    ![]์€ false์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

  • false์™€ []์€ ๊ฐ™๋‹ค.
    toNumber(false)๋Š” 0์ด๊ณ , toNumber([]) ๋˜ํ•œ 0์ด๋‹ค.

3. true๋Š” false

!!"false" == !!"true"; => true
!!"false" ===!!"true"; =>true

true== "true"๋Š” false๋‹ค.
true๋Š” 1์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ string์•ˆ์— ์žˆ๋Š” 'true'๋Š” NaN์ด๋‹ค.
์ด ๋ง์€ ์ฆ‰ false =="false"๋Š” false๋‹ค.
'false'๋Š” ๋นˆ ์ŠคํŠธ๋ง์ด ์•„๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ด๋Š” truthy value์ด๋‹ค.
!!"false" =>true๊ฐ€ ๋œ๋‹ค.

4. []์€ truthy์ด์ง€๋งŒ true๋Š” ์•„๋‹ˆ๋‹ค.

๋ฐฐ์—ด์€ truthyํ•œ ๊ฐ’์ด์ง€๋งŒ true์™€ ๊ฐ™์ง€๋Š” ์•Š๋‹ค.

!![] // => true
[] == true // => false

5. null์€ falsy์ด์ง€๋งŒ false๋Š” ์•„๋‹ˆ๋‹ค.

null์€ falsy๊ฐ’์ด๋ผ๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  false๋Š” ์•„๋‹ˆ๋‹ค.

!!null //=>false
null == false; // =>false

๋™์‹œ์— 0 ๋˜๋Š” ''์™€ ๊ฐ™์€ falsy๊ฐ’์€ false์™€ ๋™์ผํ•˜๋‹ค.

0 == false; //=>true
"" == false ; //=>true

6. ์ตœ์†Œ ๊ฐ’์€ 0๋ณด๋‹ค ํฌ๋‹ค.

Number.MIN_VALUE์€ 0๋ณด๋‹ค ํฐ ๊ฐ€์žฅ ์ž‘์€ ์ˆซ์ž์ด๋‹ค.

Number.MIN_VALUE >0; // =>true

Number.MIN_VALUE์€ 5e0324์ด๋‹ค. ์ฆ‰ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ •๋ฐ€๋„ ๋‚ด์—์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์ž‘์€ ์–‘์ˆ˜์ด๋‹ค. ์†Œ์ˆ˜๊ฐ€ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ์ƒ์˜ ๊ฐ’์ด๋ผ๊ณ  ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

7. ๋ฐฐ์—ด ์ถ”๊ฐ€

๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

[1,2,3]+[4,5,6]; // =>'1,2,34,5,6'

์•„๋ž˜๋ฅผ ์ฐจ๊ทผ์ฐจ๊ทผ ๋ด๋ณด์ž.

[1,2,3]+[4,5,6]
[(1,2,3)].toString() +[4,5,6].toString();
"1,2,3"+"4,5,6";
// =>("1,2,34,5,6");

8. ๋ฐฐ์—ดํ‰๋“ฑ์€ ๋ชฌ์Šคํ„ฐ

๋ฐฐ์—ดํ‰๋“ฑ์€ ์•„๋ž˜์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ javascript์—์„œ๋Š” ๋ชฌ์Šคํ„ฐ์ด๋‹ค.

[] == ' ' //=>true
[] == 0 //=>true
[''] == '' //=>true
[0] == 0 // =>true
[0] == '' //=>false
[''] == 0 // =>true
[null] == '' //=>true
[null] == 0 //=>true
[undefined] == '' //=>true
[undefined] == 0 //=>true
[[]] == 0 // true
[[]] == '' // true
[[[[[[]]]]]] == '' // true
[[[[[[]]]]]] == 0 // true
[[[[[[ null ]]]]]] == 0 // true
[[[[[[ null ]]]]]] == '' // true
[[[[[[ undefined ]]]]]] == 0 // true
[[[[[[ undefined ]]]]]] == '' // true

9. undefined๊ณผ Number

Number์ƒ์„ฑ์ž์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜์ง€ ์•Š์œผ๋ฉด 0๊ฐ’์„ ์–ป๊ฒŒ ๋œ๋‹ค. ์‹ค์ œ ์ธ์ˆ˜๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ undefined๊ฐ’์ด ํ˜•์‹ ์ธ์ˆ˜์— ํ• ๋‹น๋˜๊ธฐ์— ์ธ์ˆ˜๊ฐ€ ์—†๋Š” Number๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์œผ๋กœ undefined๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ undefined๋ฅผ ํ†ต๊ณผํ•˜๋ฉด NaN์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

Number(); // => 0
Number(undefined); // =>NaN

10. parseInt๋Š” ๋‚˜์œ๋†ˆ??

parseInt์€ ํŠน์ดํ•œ ์ ์œผ๋กœ ์œ ๋ช…ํ•˜๋‹ค.

parseInt("f*k"); //=>NaN
parseInt("f*k",16);// =>15

์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์€ parseInt๋Š” ์•Œ ์ˆ˜ ์—†๋Š” ๋ฌธ์ž์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ๋ฌธ์ž๋ณ„๋กœ ๊ณ„์† ๊ตฌ๋ฌธ ๋ถ„์„์„ ํ•˜๊ธฐ์— ๋ฐœ์ƒํ•œ๋‹ค. f*k์—์„œ f๋Š” 16์ง„์ˆ˜๋กœ 15์ด๋‹ค.

๋ถ€๋™ ์†Œ์ˆ˜์ ๊ฐ’์„ ํŒŒ์‹ฑํ•˜๋Š” ๋™์•ˆ ์ฃผ์˜ํ•˜์ž.

parseInt(0.000001); // -> 0
parseInt(0.0000001); // -> 1
parseInt(1 / 1999999); // -> 5

parseInt์€ ๋ฌธ์ž์—ด ์ธ์ˆ˜๋ฅผ ์ทจํ•˜๊ณ  ์ง€์ •๋œ ๊ธฐ์ˆ˜์˜ ์ •์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
0.000001์€ ๋ฌธ์ž์—ด "0.000001"๋กœ ๋ฐ”๋€Œ๊ณ  parseInt์€ 0์œผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค. 0.0000001์ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋˜๋ฉด"1e-7"๋กœ ๋˜๋ฏ€๋กœ
parseInt์€ 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.1/1999999์€ 5.00000250000125e-7๋กœ ํ•ด์„๋˜๊ณ parseInt์€5์„ ๋ฆฌํ„ดํ•œ๋‹ค.


์•„๋ž˜ ๊ธ€์„ ์ฐธ๊ณ ํ•ด ์ž‘์„ฑํ–ˆ๋‹ค.

https://github.com/denysdovhan/wtfjs/blob/master/README-kr.md

profile
Front-end Developer ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€