For Beginners

[JavaScript] JavaScript ์ •๋ฆฌ - 4 (๊ธฐ์กด ๋‚ด์šฉ ๋ณต์Šต) ๋ณธ๋ฌธ

2021๋…„ ์ž๋ฃŒ/WEB

[JavaScript] JavaScript ์ •๋ฆฌ - 4 (๊ธฐ์กด ๋‚ด์šฉ ๋ณต์Šต)

.log 2021. 3. 5. 10:31
728x90

๐Ÿ‘‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ž€?

     ์ž๋ฃŒํ˜•์„ ๋ช…์‹œํ•˜์ง€ ์•Š๋Š” ๋™์  ํƒ€์ด๋ฐ ์–ธ์–ด

 

๐Ÿ‘‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์–ด๋””์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€?

     html์— ํฌํ•จ๋˜์–ด์ ธ์„œ ๋ธŒ๋ผ์šฐ์ €์— ๋กœ๋”ฉ, ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹นํ•œ ๋‹ค์Œ์— ์‹คํ–‰ํ•ด์ค€๋‹ค.

 

๐Ÿ‘‰ ์ •์  ํŽ˜์ด์ง€ -> ๋™์  ํŽ˜์ด์ง€

     html -> JavaScript

  • ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์–ป์–ด์˜ค๊ณ  ๋ฌธ์„œ ์กฐ์ž‘, ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋ฅผ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.

๐Ÿ‘‰ JavaScript์™€ Java์˜ ๋น„๊ต

     JavaScript๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰, Jsp(Java)๋Š” JVM์—์„œ ์‹คํ–‰

 

๐Ÿ‘‰ JavaScript์˜ ์œ„์น˜

     HTML๋ฌธ์„œ ๋‚ด์— ํฌํ•จ๋˜์–ด์„œ ์‹คํ–‰.

     ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ๋กœ ๊ตฌ๋ถ„๋˜์–ด์„œ ์‚ฌ์šฉ๋˜์–ด์ง„๋‹ค.

     ์Šคํฌ๋ฆฝํŠธ ํƒœ๊ทธ์˜ ์œ„์น˜๋Š” ์–ด๋””๋ผ๋„ ์ƒ๊ด€์ด ์—†๋‹ค. (์ผ๋ฐ˜์ ์œผ๋กœ๋Š” head์™€ body ๋‚ด๋ถ€์— ๋„ฃ์–ด์ค€๋‹ค.)

     ๋งŒ์•ฝ ์™ธ๋ถ€์—์„œ JS ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์œผ๋ฉด src๋ฅผ ํ†ตํ•ด์„œ ๊ฐ€์ ธ์˜จ๋‹ค.

     JS์˜ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์งˆ ์ˆ˜๋ก, ๋ธŒ๋ผ์šฐ์ €์˜ ์†๋„๋ฅผ ์œ„ํ•ด์„œ

     JSํŒŒ์ผ์€ ๋˜๋„๋ก body์ชฝ์— ๋„ฃ์–ด์ฃผ์–ด์•ผ ๋น ๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ํ•˜์—ฌ ์ข‹์„ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ‘‰ JavaScript์˜ ๋ณ€์ˆ˜ ์„ ์–ธ

String name = "ํ™๊ธธ๋™" (X)

       name = "ํ™๊ธธ๋™" (O) --> ์ „์—ญ๋ณ€์ˆ˜ (๋‹ค๋ฅธ js ํŒŒ์ผ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ)
   var name = "ํ™๊ธธ๋™" (O) --> ์ง€์—ญ๋ณ€์ˆ˜ (๋‹ค๋ฅธ jsํŒŒ์ผ์—์„œ ์ ‘๊ทผ ๋ถˆ๊ฐ€๋Šฅ, ์„ ์–ธ๋œ ์Šค์ฝ”ํ”„ ๋‚ด์—์„œ๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅ)
   
   ๐Ÿ’– ๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ์ ‘๊ทผํ•˜๋Š” ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ํŒŒ์ผ์˜ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋กœ๋”ฉ๋˜๊ธฐ ์ „์— ํ•ด๋‹น ๋ณ€์ˆ˜๊ฐ€ ์‚ฌ์šฉ๋˜์–ด์•ผ ํ•œ๋‹ค.
   
   var su;  ์„ ์–ธ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ํ•  ์ˆ˜ ์žˆ์Œ(overwrite)
   let su;  ์„ ์–ธ์„ ๋‘ ๋ฒˆ ์ด์ƒ ํ•  ์ˆ˜ ์—†์Œ

 

๐Ÿ‘‰ ์›์‹œํ˜• ๋ฐ์ดํ„ฐ ํƒ€์ž…์˜ ์ข…๋ฅ˜

number , String , boolean , null , undefined

๐Ÿ‘‰ ํ˜ธ์ด์ŠคํŒ…

     ์„ ์–ธ ์‹œ ์˜์—ญ์˜ ์ตœ์ƒ๋‹จ์œผ๋กœ ์˜ฌ๋ผ๊ฐ€๋Š” ๊ฒƒ. (์˜์—ญ ๋‚ด ๋Œ์–ด ์˜ฌ๋ฆผ)

     let๊ณผ const๋„ ์ ์šฉ๋˜๋‚˜, TDZ(temporal deadline zone)๊ฐ€ ์ ์šฉ๋˜์–ด ์ดˆ๊ธฐํ™” ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด ์ ‘๊ทผ ์‹œ

     ReferenceError๋ฅผ ๋ฐœ์ƒ.

     ๊ฐ™์€ ์˜์—ญ์—์„œ let, const ๋ณ€์ˆ˜๋ฅผ ๋™์ผ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

     ๋˜ํ•œ var๊ณผ๋Š” ๋‹ฌ๋ฆฌ ๋‹จ์ˆœํ•œ {} ์ค‘๊ด„ํ˜ธ๋„ ์˜์—ญ์œผ๋กœ ์ธ์‹ํ•˜์—ฌ

     ์„ ์–ธํ•œ ์˜์—ญ์„ ๋ฒ—์–ด๋‚˜๋Š” ๊ฒฝ์šฐ์—๋Š” ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

     let๊ณผ const๋Š” ๊ฑฐ์˜ ๋™์ผํ•˜๋‚˜, let์€ ๋ณ€์ˆ˜ const๋Š” ์ƒ์ˆ˜

// 1๋ฒˆ case (์ •์ƒ ๋™์ž‘: ์ถœ๋ ฅ 10)
var su = 10;
document.write(su);

// 2๋ฒˆ case (์—๋Ÿฌ ๋ฐœ์ƒ : su is not defined)
document.write(su);

// 3๋ฒˆ case (์ •์ƒ ๋™์ž‘: ์ถœ๋ ฅ์€ undefined)
document.write(su);
var su = 10;	// ํ˜ธ์ด์ŠคํŒ… ๋ฐœ์ƒ(๋ณ€์ˆ˜ ์„ ์–ธ์ด ์˜์—ญ์˜ ๋งจ ์œ„๋กœ ์˜ฌ๋ผ๊ฐ)

/*
ํ˜ธ์ด์ŠคํŒ…์ด ๋˜๋ฉด ๋‹ค์Œ ๋™์ž‘ ๊ณผ์ •๊ณผ ๊ฐ™๋‹ค.
var su;
document.write(su);
su = 10;
*/


// 4๋ฒˆ case (์—๋Ÿฌ ๋ฐœ์ƒ: ํ˜ธ์ด์ŠคํŒ…์ด ๋˜์—ˆ์œผ๋‚˜, ์ดˆ๊ธฐํ™”ํ•˜์ง€ ์•Š์€ ๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ๋Š” Reference์—๋Ÿฌ ๋ฐœ์ƒ)
document.write(su);
let su = 10;

/*
๋‹ค์Œ ๋™์ž‘ ๊ณผ์ •๊ณผ ๊ฐ™๋‹ค.
let su;
document.write(su);  let ๋ณ€์ˆ˜๊ฐ€ ์ดˆ๊ธฐํ™”๋˜์ง€ ์•Š์•˜๋Š”๋ฐ ์ ‘๊ทผํ•˜์—ฌ ์—๋Ÿฌ ๋ฐœ์ƒ!
su = 10;
*/
var์™€ let์˜ ์ฐจ์ด

function{ }์˜ ์˜์—ญ์ด ์•„๋‹Œ ์˜์—ญ ๊ด„ํ˜ธ{ }๋งŒ ์žˆ๋‹ค๋ฉด
๊ทธ ๋ฐ–์˜ ์˜์—ญ์„ ์ž๊ธฐ ์˜์—ญ์œผ๋กœ ํ˜ธ์ด์ŠคํŒ…

function{ }์˜ ์˜์—ญ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ
๋‹จ์ˆœ ์˜์—ญ ๊ด„ํ˜ธ{ }๋„ ์ž๊ธฐ ์˜์—ญ์œผ๋กœํ•ด์„œ ํ˜ธ์ด์ŠคํŒ…

 var๊ณผ let์˜ ์ฐจ์ด

 

 

๐Ÿ‘‰ ๋ธŒ๋ผ์šฐ์ €์— html ์ถœ๋ ฅํ•˜๊ธฐ

document.write("<p></p>");
document.write("๋ธŒ๋ผ์šฐ์ €์— ์ถœ๋ ฅํ•  html");

 

๐Ÿ‘‰ ๋ฐฑํ‹ฑ ( ` ` )

1. ๋ฉ€ํ‹ฐ๋ผ์ธ ์ง€์›
2. ${expression}์„ ์‚ฌ์šฉํ•˜์—ฌ '+' ๊ธฐํ˜ธ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค
var name = `๊น€์˜ˆ์ง„`;
console.log("์ด๋ฆ„์€ " + name + "์ž…๋‹ˆ๋‹ค");
console.log(`์ด๋ฆ„์€ ${name} ์ž…๋‹ˆ๋‹ค`);	//๋ฐฑํ‹ฑ์„ ์“ฐ๋ฉด ์ด๋ ‡๊ฒŒ ํ‘œํ˜„์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

 

๐Ÿ‘‰ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํŠน์ง•

     ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ตฌ๋ถ„์ž, ์ข…๊ฒฐ์ž ์—ญํ• ์„ ํ•˜๋Š” ' ; ' ๋ฅผ ์ƒ๋žต๊ฐ€๋Šฅ

     ๊ตฌ๋ถ„์ž๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ, ํ•œ ์ค„์„ ๋ฌธ์žฅ์ด๋ผ๊ณ  ์ธ์‹ํ•œ๋‹ค.

    (์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” ํ•œ ์ค„ ๋‚ด์—๋„ ๋ฌธ์žฅ์ด ์—ฌ๋Ÿฌ๊ฐœ์ธ์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค)

 

 

๐Ÿ‘‰ ์—„๊ฒฉํ•œ ๋“ฑ๊ฐ€ ์—ฐ์‚ฐ์ž ์‚ฌ์šฉ

==, != ===, !==
๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ์ง€ ํ™•์ธ ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ์ง€ ํ™•์ธ
ํƒ€์ž…์€ ์ผ์น˜ ์•ˆํ•ด๋„ ๋จ ํƒ€์ž…๋„ ์ผ์น˜ํ•˜๋Š” ์ง€ ํ™•์ธ

 

๐Ÿ‘‰ ์กฐ๊ฑด๋ฌธ if

1. boolean    true,                               false
2. ์ˆซ์ž         0์ด ์•„๋‹Œ ๊ฒฝ์šฐ,                  0์ธ ๊ฒฝ์šฐ
3. ๊ฐ์ฒด         ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ,        ๊ฐ์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ

 

๐Ÿ‘‰ ๋นˆ ๋ฌธ์ž์—ด ์ฒดํฌ

1. str.length == 0
2. str == ''

 

๐Ÿ‘‰ ํ•จ์ˆ˜

๐Ÿ‘‡ ์ •์ƒ ์ž‘๋™ํ•˜๋Š” ์˜ˆ์‹œ

<script>
	function hello(){
    	alert('์•ˆ๋…•~~!!');
    }
</script>

...


<script type="text/javascript">
	hello();
</script>
๐Ÿ‘‡ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ์˜ˆ์‹œ

<script>
	function hello(){
    	alert('์•ˆ๋…•~~!!');
    }
    function hello(var name){
    	alert('์•ˆ๋…•~~!! ' + name);
    }
</script>

...

<script type="text/javascript">
	hello();	//์•ˆ๋…•~!!! undefined ์ถœ๋ ฅ
</script>
๐Ÿ‘‡ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ์˜ˆ์‹œ2

<script>
	function hello(){
    	alert('์•ˆ๋…•~~!!');
    }
    function hello(name){
    	alert('์•ˆ๋…•~~!! ' + name);
    }
</script>

...

<script type="text/javascript">
	hello();	//์•ˆ๋…•~!!! undefined ์ถœ๋ ฅ
    hello('๊น€์˜ˆ์ง„');	//์•ˆ๋…•~!!! ๊น€์˜ˆ์ง„ ์ถœ๋ ฅ
</script>

 

๐Ÿ‘‰ ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ

     โ—พ src ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์™ธ๋ถ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฐธ์กฐ ์ „์šฉ์ด๋‹ค.

        ๋‚ด๋ถ€์— ์•„๋ฌด๋ฆฌ ์ข‹์€ ๊ธฐ๋Šฅ์„ ๋„ฃ์–ด๋„ ์ธ์‹๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ,

        src๋ฅผ ๋„ฃ์ง€ ์•Š์€ script ๋‚ด๋ถ€์—์„œ๋งŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋„๋ก ํ•œ๋‹ค.

     โ—พ ๋งŒ์•ฝ ํ•จ์ˆ˜๋ช…์ด ์—ฌ๋Ÿฌ ์ฐธ์กฐ ํŒŒ์ผ์„ ํ†ตํ•ด ์ค‘๋ณต๋˜๋Š” ๊ฒฝ์šฐ(๋‚ด๋ถ€ ์Šคํฌ๋ฆฝํŠธ๋„ ํฌํ•จํ•ด์„œ)

        ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ดˆ๊ธฐํ™”๋œ ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ๋œ๋‹ค.

 

๐Ÿ‘‰ ๋ณ€์ˆ˜์— ํ•จ์ˆ˜ ๋„ฃ๊ธฐ

// ๋ฐฉ๋ฒ• 1
var s = function(){
	alert('์•ˆ๋…•');
};

// ๋ฐฉ๋ฒ• 2
var s2 = new Function(์ธ์ž, ์ธ์ž, ... , "๋™์ž‘์ฝ”๋“œ");	// ๋น„๊ถŒ์žฅ
var s3 = new Function("alert('์•ˆ๋…•~~');");	          // ๋น„๊ถŒ์žฅ


// ํ˜ธ์ถœ ๋ฐฉ๋ฒ•
<button onclick="s()">๋ฒ„ํŠผ</button>

// ๋ฐฉ๋ฒ• 3
var s4 = function(add){
	add(100, 300);
    alert(add);
}

<script>
s4(function(a, b){ return a + b; });	// ์ผ๊ธ‰ ๊ฐ์ฒด(ํ•จ์ˆ˜๋„ ์ผ๊ธ‰ ๊ฐ์ฒด)๋Š” ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅ
</script>
Comments