JavaScript ๊ธฐ์ด
์ด๋ฏธ C, C++, Python ๋ฑ์ ํ์ตํด๋ณธ์ ์๋ ๋ด๊ฐ ๋ ๊ณต๋ถํ๋ ค๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ด๋, ์ฝ๋ฉ ์์ฒด๋ฅผ ์ฒ์ ์ ํ๋ ์ฌ๋์ด ํ์ตํ๊ธฐ์ ๋ถ์ ์ ํ ์ฝํ ์ธ ์.
๋ณ์
์ธ๋ฏธ์ฝ๋ก ์ ๊ผญ ์ ์ด์ผํ๋ ๊ฑด ์๋์ง๋ง ์ ์ด์ฃผ๋๊ฒ ์ข๋ค.
๋ฌธ์์ด์ ๋ฐ์ดํ๋ก(ํฐ๋ฐ์ดํ ์์๋ฐ์ดํ ์๊ด์์) ๊ฐ์ธ์ค๋ค.
1 2 3 4 5 6 | name="mike"; age=30; alert(name);//ํ์
์ฐฝ์ผ๋ก name ๋ณ์ ์ถ๋ ฅ console.log(age);//์ฝ์์ฐฝ์์ age ๋ณ์ ์ถ๋ ฅ | cs |
์ด๋ฐ์์ ๋ณ์ ์ ์ธ๋ ๊ฐ๋ฅํ์ง๋ง, ์ด๊ฒ์ด ์ ์ธ์ธ์ง ๋์ ์ธ์ง ๊ตฌ๋ถํ ์ ์๊ธฐ์ ๋ง์ฝ ํ์ ์ ํ๊ฑฐ๋ ์ฝ๋๊ฐ ๊ธธ์ด์ง๋ฉด ๋ฌธ์ ๊ฐ ์๊ธธ์๋ ์๋ค.
let ๋๋ const๋ฅผ ํ์ฉํ์ฌ ์ด๋ฅผ ํด๊ฒฐํ ์ ์๋ค.
1 2 3 4 5 | let name = 'Mike'; // 1000 lines after... let name = 'google'; | cs |
์ด๋ ๊ฒ let์ผ๋ก ์ ์ธํ๋ฉด ์ฌ์ฐจ ์ ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ค.
const๋ก ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ์ฌ์ฐจ ์ ์ธ์ ๋ฌผ๋ก ์ด๊ณ ๋ณ์๊ฐ ์์ ๋ ๋ถ๊ฐ๋ฅํ๋ค.
const ๋ณ์๋ช ์ ๋๋ฌธ์๋ก ์ ์ด์ฃผ๋๊ฒ ๊ด๋ก์ด๋ค.
์๋ฃํ
๋ฌธ์์ด์ ' " ` ์ ์ค ๋ฌด์์ผ๋ก ๊ฐ์ธ๋ ์๊ด์๋ค.
'๋ ์ ๋ ฅํ๊ธฐ๊ฐ ํธํ๋ค
"๋ ๋ฌธ์์ด ๋ด๋ถ์ ' ๊ฐ ๋ค์ด์๋ ๊ฒฝ์ฐ ๊ตฌ๋ถ์ฉ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
`๋ ๋ฌธ์์ด ํฌ๋งคํ ์ด ๊ฐ๋ฅํ๋ค.
๋ฌธ์์ด๊ณผ ๋ฌธ์์ด์ ๋ํด์ฃผ๋ฉด ๋ฌธ์์ด์ด ์ฐ๊ฒฐ๋๋ค.
์ซ์์ ๋ฌธ์์ด์ ๋ํด์ฃผ๋ฉด ์ซ์๊ฐ ๋ฌธ์์ด์ฒ๋ผ ์ฐ์ฐ๋๋ค.
1 2 3 | let name = 'Mike'; console.log(`my name is ${name}!`);//๋ฌธ์์ด์ ํฌ๋งคํ
ํ๋ ค๋ฉด ${ }๋ฅผ ํ์ฉํ์! | cs |
์ซ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ์ซ์ํ์ด ๋๊ณ , ์ฌ์น์ฐ์ฐ์ ์ ๊ณตํ๋ค.
0์ผ๋ก ๋๋๋ฉด ๋ฌดํ์ ๋๋ ค์ค๋ค.
๋ฌธ์์ด์ ์ซ์๋ก ๋๋๋ฉด NaN(Not a number)๋ฅผ ๋๋ ค์ค๋ค.
Boolean์ true, false๊ฐ์ ๊ฐ์ง๋ค.
null์ ์๋ฌด๊ฐ๋ ์๋ค๋ ๋ป์ด๊ณ , undefined๋ ๊ฐ์ด ํ ๋น๋ ์ ์ด ์๋ค๋ ๊ฒ์ด๋ค
์ด์ธ์๋ ๊ฐ์ฒดํ(object)๊ณผ ์ฌ๋ถํ์ด ์์ง๋ง ๋์ค์ ๋ฐฐ์๋ณด์
typeof ๋ฅผ ํ์ฉํ์ฌ ๋ณ์ํ์ ์์๋ผ ์ ์๋ค.
1 2 3 4 | let name = 'Mike'; console.log(typeof name) console.log(typeof 50) | cs |
alert, prompt, confirm
1 2 3 4 5 6 7 8 | const name=prompt('์ด๋ฆ์ ์
๋ ฅํ์ธ์.');//๊ฐ์ ์
๋ ฅ๋ฐ์์ ์๋ ๋ํ์์ alert('ํ์ํฉ๋๋ค, ' + name + '๋'); const date=prompt('์์ฝ์ผ์ ์
๋ ฅํด์ฃผ์ธ์.','2020-10-12')//์ด๋ฐ์์ผ๋ก default ๊ฐ์ ์ค์ ํ ์๋ ์๋ค. alert(date); const isAdult=confirm('๋น์ ์ ์ฑ์ธ์
๋๊น?');//ํ์ธ ์ทจ์์ ๋ฐ๋ผ true/false๋ฅผ ๋ฐ์ console.log(isAdult); | cs |
prompt์์ ์ทจ์๋ฅผ ๋๋ฅด๋ฉด null์ ๋ฐ๋๋ค. ์ฐธ๊ณ ํ๊ธฐ
prompt๋ก ์ ๋ ฅ๋ฐ์ ๊ฐ์ ๋ฌด์กฐ๊ฑด ๋ฌธ์ํ์ด๋ฏ๋ก ํ๋ณํ์ ์ฌ์ฉํด์ผํ ์๋ ์๋ค.
์ฐฝ์ด ๋ ์๋๋์ ์คํฌ๋ฆฝํธ๊ฐ ์ ์ง๋๋ค๋ ์ , ๋์์ธ์ ๋ฐ๊ฟ ์ ์๋ค๋ ์ ๋ฑ์ ๋จ์ ์ด ์กด์ฌํ๋ค.
ํ๋ณํ
์๋ฃํ | ํน์ง |
String() | ๋ฌธ์ํ์ผ๋ก ๋ณํ |
Number() | ์ซ์ํ์ผ๋ก ๋ณํ. ๋ฌธ์์ด์ ์ฌ์ฉํ๋ฉด NaN ๋ฆฌํด. true/false์ ์ฌ์ฉํ๋ฉด 1/0์ ๋ฆฌํด null์ ๋ฃ์ผ๋ฉด 0์ ๋ฆฌํด, undefined๋ฅผ ๋ฃ์ผ๋ฉด NaN์ ๋ฆฌํด |
Boolean() | ๋ถ๋ฆฐํ์ผ๋ก ๋ณํ. 0/""/null/undefined/NaN์ false๊ฐ ๋๊ณ , ๊ทธ ์ธ์๋ true๊ฐ ๋๋ค. |
์ฐ์ฐ์
์ฌ์น์ฐ์ฐ์ ๊ทธ๋๋ก ์ฌ์ฉ๊ฐ๋ฅ( ๋ชซ์ ๊ตฌํ๊ณ ์ถ์๋ parceInt(a/b)์ ๊ฐ์์์ผ๋ก ์ ์๋ง ๋๋ ค์ฃผ๋ ํจ์๋ฅผ ํ์ฉ)
+=, *=๊ฐ์ ์ฐ์ฐ์ ๊ทธ๋๋ก ์ฌ์ฉ ๊ฐ๋ฅ
++, --๋ ๊ทธ๋๋ก ์ฌ์ฉ๊ฐ๋ฅ.
๋ ผ๋ฆฌ์ฐ์ฐ์๋ C์ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅ.
๋ค๋ง ==๋ ๊ฐ๋ง ๋น๊ตํ๊ธฐ ๋๋ฌธ์ด 1=='1'๊ฐ์ ๊ฒฝ์ฐ ์ฐธ์ ๋ฐํ.
ํ์ ๊น์ง ๋น๊ตํ๋ ค๋ฉด ===์ ์ฌ์ฉํด์ผํ๊ณ , ์ด๋ฅผ ์ต๊ดํํ์.
๋ํ ๋ฌธ์์ด๊ณผ ๋ฌธ์์ด์ &&, || ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ์ ์ด์ธ๋ฆฌ๋ ๋ฌธ์์ด์ ๋ฆฌํดํด์ค๋ค.
์กฐ๊ฑด๋ฌธ
C๋ ์ฌ์ฉ๋ฒ ๋์ผ
๋ฐ๋ณต๋ฌธ
C๋ ๊ฑฐ์ ์ฌ์ฉ๋ฒ ๋์ผ
break, continue๋ ๋์ผํ๊ฒ ์ฌ์ฉ๊ฐ๋ฅ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | for(let i=0; i<10 ; i++){ console.log(i); } let j=0 while(j<10){ console.log(j); j++; } let k=0; do{ console.log(k); k++; }while(k<10) | cs |
switch๋ฌธ๋ ์ฌ์ฉ ๊ฐ๋ฅ
switch(ํ๊ฐ){
case A:
//A์ผ๋ ์ฝ๋
case B:
//B์ผ๋ ์ฝ๋
...
}
ํจ์
ํจ์ ์ ์ธ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ๋ค
1 2 3 4 5 6 7 | function sayHello(name){ console.log(`Hello, ${name}`); } let myname=prompt('์ด๋ฆ์ ์
๋ ฅํด ์ฃผ์ญ์์ค'); sayHello(myname); | cs |
ํจ์ ๋ด๋ถ์์ ์ ์ธ๋ ๋ณ์๋ ํจ์ ๋ด์์๋ง ์ ํจํ๋ค. ์ง์ญ๋ณ์์ธ ๊ฒ์ด๋ค.
ํ์ง๋ง ํจ์ ์ธ๋ถ์์ ์ ์ธ๋ ๋ณ์๋ฅผ ํจ์ ๋ด์์ ์ ๊ทผํ ๊ฒฝ์ฐ ์ ๊ทผ ๊ฐ๋ฅํ๋ค. ์ ์ญ๋ณ์๋ผ๊ณ ํ ์์๋ค.
ํ์ง๋ง!! ํจ์ ์ธ๋ถ์์ let์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ๊ณ , ๊ฐ์ ์ด๋ฆ์ผ๋ก ํจ์ ๋ด์์ let์ผ๋ก ๋ณ์๋ฅผ ์ ์ธํ ๊ฒฝ์ฐ, ๋ ๋ณ์๋ ๋ค๋ฅธ ๋ณ์๋ก ์ธ์๋๋ค. ์๋ฌ๊ฐ ๋ฐ์ํ์ง๋ ์๊ณ , ํจ์ ๋ด์์ ๋ณ์๊ฐ์ ๋ณ๊ฒฝํด๋ ํจ์ ์ธ๋ถ์ ๋๋ช ์ ๋ณ์์ ๊ฐ์ ๋ณํ์ง ์๋๋ค.
๋งค๊ฐ๋ณ์๋ ํจ์์ ์ง์ญ๋ณ์๊ฐ ๋๋ค.
๋งค๊ฐ๋ณ์ ๋ค์ ๋ฑํธ๋ฅผ ํ์ฉํด default๊ฐ์ ์ค์ ํด์ค ์ ์๋ค.
function showError(errorcode='noerror')์ด๋ผ๊ณ ์ค์ ํ๋ฉด ์๋ฌด ๊ฐ๋ ์ ๋ฌ๋ฐ์ง ์์์ ๋ errorcode์ 'noerror'์ ์ ๋ฌํ๋ค.
return์ผ๋ก ๊ฐ์ ๋ฐํํ ์ ์๋ค.
ํจ์ ์ข ๋ฃ ๋ชฉ์ ์ผ๋ก return ์ ์ฌ์ฉํ ๊ฒฝ์ฐ undefined๋ฅผ ๋ฐํํ๋ค.
ํจ์๋ ์ ์ธ๋ฌธ์ด ์๋๋ผ ํจ์ ํํ์์ผ๋ก๋ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 | //ํจ์์ ์ธ๋ฌธ function sayHello(){ console.log('Hello') } //ํจ์ํํ์ let speakHello=function(){ console.log('Hello') } sayHello() speakHello() | cs |
ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋์์ ๋๊ฐ์ด ๋๋ค.
๋ค๋ง ์ฐจ์ด์ ์ ํจ์ ์ ์ธ๋ฌธ์ ํจ์ ํธ์ถ ๋ค์ ์๋ ์๋ฌ์์ด ์๋ํ๋
ํจ์ํํ์์ ํจ์ ํธ์ถ ๋ค์ ํจ์ํํ์์ด ๊ธฐ์ ๋ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋ฅ ํธํ๊ฒ ์ฝ๋ฉํ๊ณ ์ถ์ผ๋ฉด ํจ์ ์ ์ธ๋ฌธ๋ง ์ฌ์ฉํ๋ฉด ๋๋ค๊ณ ํ๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์๋ ํ์ดํํจ์๋ผ๋ ๊ฒ๋ ์กด์ฌํ๋ค.
ํจ์ํํ์์์ ์กฐ๊ธ ๋ ๊ฐ๊ฒฐํด์ ๋ฒ์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
ํจ์ ๋ด์ฉ์ด ์งง์๋ ์ฐ๋ฉด ์ ์ฉํ ๊ฒ ๊ฐ๋ค.
1 2 3 4 5 6 7 8 9 10 11 | //ํจ์ํํ์ let speakHello=function(){ console.log('Hello') } //ํ์ดํํจ์ let printHello=()=>{ console.log('Hello') } printHello() | cs |
๋ฆฌํด๋ฌธ์ด ํ์ค์ด๋ฉด ๊ตณ์ด ์ค๊ดํธ๋ฅผ ์ด๊ณ ์ค์ ๋ฐ๊ฟ ํ์ ์์ด, ํ์ดํ ์ค๋ฅธ์ชฝ์ ์ ์ด์ฃผ๋ฉด ๋๋ค.
์ ๋ ฅ ๋งค๊ฐ๋ณ์๊ฐ ํ๋๋ผ๋ฉด ๊ดํธ๋ฅผ ์๋ตํ ์ ์์ผ๋, ๋งค๊ฐ๋ณ์๊ฐ ์๊ฑฐ๋ ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ ๊ดํธ๋ฅผ ์ณ์ฃผ์ด์ผ ํ๋ค.
1 2 3 4 5 6 7 8 | let addFunc1=function(n1,n2){ return n1+n2 } let addFunc2=(n1,n2)=>n1+n2; console.log(addFunc2(3,5)) | cs |
๋ฐฐ์ด
1 2 3 4 5 6 7 8 9 | //1์ฐจ์ ๋ฐฐ์ด let students=['Mike','Thomas','Sindy','Marco']; //access console.log(students[0]); //rewrite students[0]='brenda'; console.log(students[0]); | cs |
ํ์ด์ฌ์ ๋ฆฌ์คํธ์ ์ ์ฌํ๋ฏ ํ๋ค.
์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๋ค.
์ ๊ทผ๊ณผ ๋ฎ์ด์ฐ๊ธฐ๋ ํ์ด์ฌ๊ณผ ๋์ผํ๋ค.
๋ฐฐ์ด์๋ ๋ฌธ์, ์ซ์, ๊ฐ์ฒด, ํจ์ ๋ฑ ๋ค์ํ ๊ฒ๋ค์ ๋ฃ์ ์ ์๋ค.
๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฉ์จ๋, push, pop, shift, unshift๋ฑ์ ๋ฉ์จ๋๋ฅผ ์ ๊ณตํ๋ค.
push์ shift๋ ํ๋ฒ์ ์ฌ๋ฌ ์์๋ฅผ ๋ฃ์์๋ ์๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | //1์ฐจ์ ๋ฐฐ์ด let students=['Mike','Thomas','Sindy','Marco']; //get length console.log(students.length); //push students.push('Serena'); //pop console.log(students.pop()); //shift students.shift('Katarina'); //unshift students.unshift() console.log(students); | cs |
๋ฐฐ์ด์ ์ํํ๊ณ ์ ํ ๋ length๋ฅผ ํ์ฉํ์ฌ for๋ฌธ์ผ๋ก ์ํํ ์๋ ์๊ณ , for of ๋ฌธ์ ์ฌ์ฉํ ์๋ ์๋ค.
1 2 3 4 5 6 7 8 9 10 11 12 13 | //1์ฐจ์ ๋ฐฐ์ด let students=['Mike','Thomas','Sindy','Marco']; //๋ฐ๋ณต๋ฌธ //index๋ก ๋ฐฐ์ด ์ํํ๊ธฐ for(let index=0 ; index<students.length ; index++){ console.log(students[index]); } //for of ๋ฌธ์ผ๋ก ๋ฐฐ์ด ์ํํ๊ธฐ for(let person of students){ console.log(person); } | cs |