๋ค์ ๋ฌธ์ฅ์ ๋ณด๊ณ true, false๋ฅผ ํ๋จํ์ธ์.
(1) : JS์์ ๋ฐฐ์ด ํ์
์ ์กด์ฌํ์ง ์๋๋ค.
(2) : ๋ฐฐ์ด์ length ํ๋กํผํฐ์ ๊ฐ์ ๋ฐฐ์ด ์์๋ฅผ ์ถ๊ฐ, ์ญ์ ํ๋ฉด ์๋ ๊ฐฑ์ ๋๋ค.
(3) : push, pop, unshift, shift, concat, splice ๋ฉ์๋๋ ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ๋ค.
(4) : find, filter ๋ฉ์๋๋ ๋ฐฐ์ด์ ๋ฐํํ๋ค.
(1) : true
(2) : true
(3) : false - concat์ ์๋ณธ ๋ฐฐ์ด์ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
(4) : false - find ๋ฉ์๋๋ ์์๋ฅผ ๋ฐํํ๋ค. (๊ต์ฌ 549p)
๋ค์ ํจ์๋ฅผ ์คํํ์์ ๋, ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ์์ค.
function func ( ) {
const arr = [ 1 , 2 , 3 , 4 , 5 ] ;
arr . forEach ( ( item ) => {
if ( item === 2 ) return ;
console . log ( item ) ;
} )
}
์ถ๋ ฅ ๊ฒฐ๊ณผ : 1 3 4 5
๊ต์ฌ์์ forEach๋ฌธ์ ๋ด์์ ์ํ๋ฅผ ์ ์ดํ๊ธฐ์ํด ` break ` , ` continue ` ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์๋ฌ๊ฐ ๋์ต๋๋ค.
ํ์ง๋ง return๋ฌธ์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋์ค์ง ์์ง๋ง, ์ํ๋ฅผ ๋ฉ์ถ์ง๋ ์์ต๋๋ค.
๊ทธ ์ด์ ๋ forEach๊ฐ ๋งค๋ฒ ์ฝ๋ฐฑํจ์ ์คํ์ ํตํด ์ํํ๊ธฐ ๋๋ฌธ์
๋๋ค.
๋ฐ๋ผ์ ๊ฐ ์ํ์ ์คํ์ ํจ์์ ์คํ์ผ๋ก ๋ณผ ์ ์๊ณ , ํจ์ ๋ด ` return ` ์ ํจ์ ์ข
๋ฃ๋ก ์ด์ด์ง๋๋ค.
์ถ๊ฐ๋ก MDN์์ ์ํ๋ฅผ ์ ์ดํ๊ธฐ ์ํด์๋ for, for...of, for...in ๋ฑ๊ณผ ๊ฐ์ ๋ฐ๋ณต๋ฌธ์ ๊ถ์ฅํฉ๋๋ค.
true or false๋ฅผ ๊ณ ๋ฅด์ธ์
1) Array.prototype.splice๋ ์๋ณธ ๋ฐฐ์ด์ ๋ณํ์ํค๊ณ , Array.prototype.slice๋ ๋ณํ์ํค์ง ์๋๋ค.
2) new Array(a)๋ Array(a)์ ๋์ ๋ฐฉ์์ด ๊ฐ๋ค.
3) [1, 2, 3, 4, 100, 5].sort() === [1, 2, 3, 4, 5, 100] ์ด๋ค.
4) array์ sort ๋ฉ์๋๋ quicksort๋ฅผ ์ฌ์ฉํ๋ค.
5) forEach๋ for์ ๋นํด ์ฑ๋ฅ์ด ์ข๋ค.
1) true
2) true
Array ์์ฑ์ ํจ์๋ new ์ฐ์ฐ์์ ํจ๊ป ํธ์ถํ์ง ์๋๋ผ๋, ์ฆ ์ผ๋ฐํจ์๋ก์ ํธ์ถํด๋ Array ์์ฑ์ ๋ด๋ถ์์ new.target์ ํ์ธํ๊ธฐ ๋๋ฌธ์ array๊ฐ ์์ฑ๋๋ค.
3) false
js์ sortํจ์๋ ์ ๋์ฝ๋ ๊ธฐ์ค์ด๊ธฐ ๋๋ฌธ์, ์์๋ค์ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ณ ์ ๋์ฝ๋ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ๋ค ๋ค์ ๋ณํํด ๋ฐํํ๋ค. ๋ฐ๋ผ์ ๊ฐ์ ํตํด ์ ๋ ฌํ๊ณ ์ถ์ผ๋ฉด ๋ณ๋์ ํจ์๋ฅผ ์ง์ ํด์ผ ํ๋ค.
4) false
์ด์ ์๋ quicksort๋ฅผ ์ด์ฉํ์ง๋ง ๋์ผํ ๊ฐ์ ์์๊ฐ ์ค๋ณต๋์ด ์์ ๋ ์ด๊ธฐ ์์์ ๋ณ๊ฒฝ๋ ์ ์๋ ๋ถ์์ ์ฑ ๋๋ฌธ์ ํ์ฌ๋ timesort๋ฅผ ์ด์ฉํ๋ค.
5) false
์ฑ๋ฅ์ด ๋จ์ด์ง์ง๋ง ๊ฐ๋
์ฑ์ด ์ข๋ค. for์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ด ์ถ๊ตฌํ๋ ๋ฐฉ์๊ณผ ๋ง์ง ์๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก for ๋์ forEach๋ฅผ ์ฐ๋ ๊ฒ์ ๊ถ์ฅํ๋ค.
๋ค์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์์ค.
console . log ( Array ( 'hello' ) ) ; // (1)
console . log ( Array . from ( 'hello' ) ) ; // (2)
const arrayLike = {
'0' : 'a' ,
'1' : 'b' ,
'2' : 'c' ,
length : 4
}
console . log ( Array . from ( arrayLike ) ) ; // (3)
const arrayUnlike = {
'0' : 'a' ,
'1' : 'b' ,
'2' : 'c' ,
}
console . log ( Array . from ( arrayUnlike ) ) ; //(4)
( 1 ) [ 'hello' ]
Array๋ ๋ฌธ์์ด์ ์
๋ ฅ๋ฐ์ผ๋ฉด ๋ฌธ์์ด์ ํฌํจํ ๋ฐฐ์ด์ ๋ฐํํ๋ค .
( 2 ) [ 'h' , 'e' , 'l' , 'l' , 'o' ]
Array . from์ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด๋ฅผ ๋ฐฐ์ด๋ก ๋ง๋ ๋ค .
( 3 ) [ 'a' , 'b' , 'c' , undefined ]
( 4 ) [ ]
length๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์์ ๋ฐฐ์ด์ด ์์ฑ๋์ง ์๋๋ค .
๋ค์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์์ค.
const arr = [ 1 , 2 , 3 ] ;
const arr1 = [ 0 , ...arr ] ;
const arr2 = [ ...arr , 4 ] ;
console . log ( arr ) ; // 1
const arr4 = [ 1 , 2 , 3 ] ;
arr4 . push ( 4 ) ;
arr4 . unshift ( 0 ) ;
console . log ( arr4 ) ; // 2
( 1 ) : [ 1 , 2 , 3 ] // spread๋ฌธ๋ฒ์ ์๋ณธ๋ฐฐ์ด์ ์์ ํ์ง์๊ณ ์์๋ณต์ฌ๋ฅผํตํด ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ค.
( 2 ) : [ 0 , 1 , 2 , 3 , 4 ] // push,unshift๋ ์๋ณธ๋ฐฐ์ด์ ์์ ํ๋ค.
๋ค์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์์ค.
const arr = [ NaN , 1 , 2 , 3 , 4 ] ;
console . log ( arr . includes ( NaN ) ) ; // 1
console . log ( arr . indexOf ( NaN ) ) ; // 2
( 1 ) : true // inclues๋ NaN์ด ๋ฐฐ์ด์ ํฌํจ๋์ด์๋์ง ํ์ธ ๊ฐ๋ฅ.
( 2 ) : - 1 // indexOf๋ ๋ถ๊ฐ.
๋ค์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ก ํ๋ฉด์ ๋ณด์ด๋ ์ซ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
< div id = "app" >
< div class = "box" > 1< / div >
< div class = "box" > 2< / div >
< div class = "box" > 3< / div >
< div class = "box" > 4< / div >
< div class = "box" > 5< / div >
< div class = "box" > 6< / div >
< / div >
< script >
const $boxes = document . querySelectorAll ( ".box" ) ;
const $newBoxes = $boxes . filter ( ( box ) => box . innerText % 2 === 0 ) ;
const $app = document . querySelector ( "#app" ) ;
$app . innerHTML = "" ;
$newBoxes . forEach ( ( box ) => $app . appendChild ( box ) ) ;
< / script >
1
2
3
4
5
6
$boxes . filter is not a function
- > NodeList๋ ์ ์ฌ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ๋ฉ์๋์ธ filter๋ฅผ ์ฌ์ฉํ ์ ์๋ค .