Chapter21 ๋นํธ์ธ ๊ฐ์ฒด
๋ค์ ์ฝ๋์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์์ธกํ์ธ์.
isFinite ( 0 ) ; // (1)
isFinite ( null ) ; // (2)
isFinite ( NaN ) ; // (3)
isFinite ( Infinity ) ; // (4)
isNaN ( null ) ; // (5)
isNaN ( undefined ) ; // (6)
isNaN ( "" ) ; // (7)
isNaN ( new Date ( ) ) ; // (8)
isNaN ( new Date ( ) . toString ( ) ) ; // (9)
331p
isFinite๋ ์ ๋ฌ๋ฐ์ ์ธ์๊ฐ ์ ์์ ์ธ ์ ํ์์ธ์ง ๊ฒ์ฌํ์ฌ ์ ํ์์ด๋ฉด true๋ฅผ ๋ฐํํ๊ณ
๋ฌดํ์ ๋๋ NaN์ผ๋ก ํ๊ฐ๋๋ ๊ฐ์ด๋ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.
(1) true
(2) true
(3) false
(4) false
332p
isNaN์ ์ ๋ฌ๋ฐ์ ์ธ์๊ฐ NaN์ธ์ง ๊ฒ์ฌํ๋ค.
์ ๋ฌ๋ฐ์ ์ธ์์ ํ์
์ด ์ซ์๊ฐ ์๋ ๊ฒฝ์ฐ ์ซ์๋ก ํ์
์ ๋ณํํ ํ ๊ฒ์ฌ๋ฅผ ์ํํ๋ค.
(5) false : null์ 0์ผ๋ก ํ์
๋ณํ
(6) true
(7) false : ๋น๋ฌธ์์ด์ 0์ผ๋ก ํ์
๋ณํ
(8) false : new Date()๋ Number๋ก ํ์
๋ณํ
(9) true : String์ NaN
๋ค์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์ฌ ์๋ณ์ x
, y
์ ์ฐจ์ด์ ์ ์ค๋ช
ํ์์ค.
console . log ( x ) ; // (1)
console . log ( y ) ; // (2)
var x = 10 ;
function foo ( ) {
y = 20 ;
}
foo ( ) ;
console . log ( x + y ) ; // (3)
x๋ ์ ์ญ ๋ณ์์ด๊ณ , y๋ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ์
๋๋ค.
์๋ํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด fooํจ์๋ฅผ ์คํํ์ฌ y๋ณ์๋ฅผ ์ค์ฝํ ์ฒด์ธ์ ํตํด ์ฐธ์กฐํ๋ ค๊ณ ์ฐพ์ง๋ง ์์ผ๋ฏ๋ก `y = 20;`์ `window.y = 20;`์ผ๋ก ํด์ํ์ฌ ์ ์ญ ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ๋์ ์์ฑํ๊ฒ ๋ฉ๋๋ค.
๋ฐ๋ผ์ x๋ ๋ณ์ ํธ์ด์คํ
์ด ๋ฐ์ํ๊ณ , y๋ ๋ฐ์ํ์ง ์์ต๋๋ค.
๋ํ x๋ delete ์ฐ์ฐ์๋ก ์ญ์ ํ ์ ์๊ณ , y๋ ๊ฐ๋ฅํฉ๋๋ค.
๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ์ ์์๊ฐ์ด ์๋๋ฐ๋ ํ์ค ๋นํธ์ธ ์์ฑ์ ํจ์๊ฐ ์กด์ฌํ๋ค. ๊ทธ ์ด์ ๋ฅผ ์ค๋ช
ํ๊ณ ์์๊ฐ์ ๊ฐ์ฒด์ฒ๋ผ ์ฌ์ฉํ ๋ ์ด๋ ํ ์ผ์ด ์ผ์ด๋๋์ง ๋ํผ๊ฐ์ฒด
๋ผ๋ ๋จ์ด๋ฅผ ์ฌ์ฉํด ์ค๋ช
ํ์์ค.
์์๊ฐ์ธ ๋ฌธ์์ด, ์ซ์, ๋ถ๋ฆฌ์ธ ๊ฐ์ ๊ฒฝ์ฐ ์ด๋ค ์์๊ฐ์ ๋ํด ๋ง์น ๊ฐ์ฒด์ฒ๋ผ ๋ง์นจํ ํ๊ธฐ๋ฒ์ผ๋ก ์ ๊ทผํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ์ผ์์ ์ผ๋ก ์์๊ฐ์ ์ฐ๊ด๋ ๊ฐ์ฒด๋ก ๋ณํํด์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค. ์์๊ฐ์ ๊ฐ์ฒด์ฒ๋ผ ์ฌ์ฉํ๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์์๊ฐ๊ณผ ์ฐ๊ด๋`๋ํผ ๊ฐ์ฒด`๋ฅผ ์์ฑํด ์์ฑ๋ ๊ฐ์ฒด๋ก ํ๋กํผํฐ์ ์ ๊ทผํ๊ฑฐ๋ ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋ค์ ์์๊ฐ์ผ๋ก ๋๋๋ฆฐ๋ค.