Skip to content

javascript_jquery_basic_1_3

kyusung edited this page Apr 13, 2017 · 1 revision

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

ํƒ€์ด๋จธ(Timer)

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ timer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ ์‹คํ–‰์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

์•„๋ž˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ์ž์ฃผ์‚ฌ์šฉ๋˜๋Š” ํƒ€์ด๋จธ ๊ด€๋ จ ํ•จ์ˆ˜์ด๋‹ค.

  • setTimeout : ํŠน์ • ๋ฐ€๋ฆฌ์ดˆ(1000๋ถ„์˜ 1์ดˆ)๋งŒํผ ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผํ•œ ํ›„์— ์‹คํ–‰๋  ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

  • clearTimeout : ๋“ฑ๋กํ•œ ํ•จ์ˆ˜๋ฅผ ์ทจ์†Œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

  • setInterval : ํŠน์ • ๋ฐ€๋ฆฌ์ดˆ(1000๋ถ„์˜ 1์ดˆ) ๊ฐ„๊ฒฉ์— ๊ฑธ์ณ ๋ฐ˜๋ณต์ ์œผ๋กœ ์‹คํ–‰๋  ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•œ๋‹ค.

  • clearInterval : setInterval์„ ํ†ตํ•ด ๋“ฑ๋กํ•œ ํ•จ์ˆ˜ ์ทจ์†Œํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

setTimeout()/setInterval()์€ ์ทจ์†Œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•จ์ˆ˜ ํ˜ธ์ถœ์‹œ timeoutID(0์ด ์•„๋‹Œ ์ˆซ์ž ๊ฐ’)๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ๋ฐ˜ํ™˜๋œ timeoutID๋ฅผ ์ด์šฉํ•ด ํƒ€์ด๋จธ๋ฅผ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.

setTimeout()๊ณผ setInterval()๋Š” ๊ฐ™์€ ID ๊ณต๊ฐ„์„ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, clearTimeout()๊ณผ clearInterval() ๋‘˜ ์ค‘ ์–ด๋А ๊ฒƒ์„ ์‚ฌ์šฉํ•ด๋„ ๊ธฐ์ˆ ์ ์œผ๋กœ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.

ํƒ€์ด๋จธ ๊ธฐ๋ณธ ์˜ˆ์ œ
ํƒ€์ด๋จธ ์‘์šฉ ์˜ˆ์ œ
ํƒ€์ด๋จธ ํด๋กœ์ €๋กœ ๋™์ž‘ํ•˜๊ธฐ

Math ๊ฐ์ฒด๋Š” ์ˆ˜ํ•™์ ์ธ ์ƒ์ˆ˜๋“ค๊ณผ ํ•จ์ˆ˜๋“ค์„ ์œ„ํ•œ ํ”„๋กœํผํ‹ฐ๋“ค๊ณผ ๋ฉ”์„œ๋“œ๋“ค์„ ๊ฐ€์ง€๋Š” ๋‚ด์žฅ๊ฐ์ฒด์ด๋‹ค.

MDN์— Math ๊ฐ์ฒด์— ๋Œ€ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๋‚ด์šฉ์ด ์žˆ๋‹ค.

๋‹ค๋ฅธ ์ „์—ญ ๊ฐ์ฒด๋“ค๊ณผ ๋‹ฌ๋ฆฌ, Math๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์•„๋‹ˆ๋‹ค. Math ๊ฐ์ฒด์˜ ๋ชจ๋“  ํ”„๋กœํผํ‹ฐ์™€ ๋ฉ”์„œ๋“œ๋Š” ์ •์ (static) ํ•˜๋‹ค.

  • Math์— ์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š” ์ด์œ ?
    Math ๊ฐ์ฒด์— ์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š”์ด์œ ๋Š” ECMAScript์˜ ๊ทœ๊ฒฉ์ด๋‹ค.
    Math ๊ฐ์ฒด๋Š” [[Construct]] ๋ฅผ ๋‚ด๋ถ€ ํ”„๋กœํผํ‹ฐ๋กœ ๊ฐ€์งˆ์ˆ˜ ์—†๊ณ  new ์—ฐ์‚ฐ์ž๋กœ Math ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ช…์‹œ๋˜์–ด์žˆ๋‹ค.
    ECMA-262

  • ์™œ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ• ์ˆ˜ ์—†๋Š”๊ฐ€?
    new ์—ฐ์‚ฐ์ž๋กœ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์—ฌ์•ผ ํ•˜๋Š”๋ฐ, Math๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฏธ๋ฆฌ ์„ ์–ธํ•ด๋†“์€ ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์—†์œผ๋ฏ€๋กœ new ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

var math = {
  PI : 3.141592
}
var mt = new math; // math is not a constructor

new operator
Not_a_constructor
Math isn't a constructor but it has

Math.max()

max() ํ•จ์ˆ˜๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Math.max(n1, n2, n3, ..., nX)
Math.max(10, 20);   //  20
Math.max(-10, -20); // -10
Math.max(-10, 20);  //  20

Math.min()

min() ํ•จ์ˆ˜๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Math.min(n1, n2, n3, ..., nX)
Math.min(5, 10); // 5
Math.min(0, 150, 30, 20, 38);  // 0

Math.random()

random() ํ•จ์ˆ˜๋Š” 0(ํฌํ•จ)๊ณผ 1(๋ถˆํฌํ•จ)์‚ฌ์ด์˜ ๋žœ๋คํ•œ ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

0.9155385791155863
0.7180965057937301
0.6913863084825393
0.24013469294573042
// min(ํฌํ•จ)๊ณผ max(๋ถˆํฌํ•จ)์‚ฌ์ด์˜ ๋žœ๋คํ•œ ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•
// floor()๋Š” ์†Œ์ˆ˜์  ์•„๋ž˜์ž๋ฆฌ๋ฅผ ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜
Math.floor(Math.random() * (max - min)) + min;

Math.Random()

Math.pow()

pow() ํ•จ์ˆ˜๋Š” ์ง€์ •ํ•œ ๊ฐ’์˜ ๊ฑฐ๋“ญ์ œ๊ณฑ์˜ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Math.pow(x, y)
Math.pow(3, 3);  // 27
Math.pow(-3, 3); // -27
Math.pow(2, 4);  // 16

Math.sqrt()

sqrt() ํ•จ์ˆ˜๋Š” ์ง€์ •ํ•œ ๊ฐ’์˜ ์ œ๊ณฑ๊ทผ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

Math.sqrt(x)
Math.sqrt(9);   // 3
Math.sqrt(64);  // 8

String

length

length ํ”„๋กœํผํ‹ฐ๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

var str = "Hello World!";
var n = str.length; // 12

concat

concat()์€ 2๊ฐœ ํ˜น์€ ๋” ๋งŽ์€ ๋ฌธ์ž์—ด๋“ค์„ ๊ฒฐํ•ฉํ•˜๊ณ , ๊ฒฐํ•ฉํ•œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

str.concat(string2, string3[, ..., stringN])
var hello = 'Hello, ';
console.log(hello.concat('Kevin', ' have a nice day.'));

replace

replace()๋Š” ์–ด๋–ค ํŒจํ„ด์— ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์ด ๊ต์ฒด๋œ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

str.replace(regexp|substr, newSubStr|function)
var str = "Mr Blue has a blue house and a blue car";
var res = str.replace(/blue/g, "red"); // Mr Blue has a red house and a red car.

split

split()๋Š” ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

string.split(separator, limit)
var str = "How are you doing today?";
var res = str.split(""); // H,o,w, ,a,r,e, ,y,o,u, ,d,o,i,n,g, ,t,o,d,a,y,?

var str = "How are you doing today?";
var res = str.split(" ", 3); // How,are,you

indexOf

indexOf๋Š” ๋ฌธ์ž์—ด์— ์ง€์ •๋œ ๊ฐ’์ด ์ฒ˜์Œ ๋‚˜ํƒ€๋‚˜๋Š” ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

string.indexOf(searchvalue, start)
var str = "Hello world, welcome to the universe.";
var n = str.indexOf("e"); // 1

var str = "Hello world, welcome to the universe.";
var n = str.indexOf("e", 5); // 14

slice

slice()๋Š” ๋ฌธ์ž์—ด์˜ ์ผ๋ถ€๋ฅผ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค.

string.slice(start, end)
var str = "Hello world!";
var res = str.slice(3, 8); // lo wo

substring

substr

Using Slice(), Substring(), And Substr() In Javascript

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์žฅ ๊ฐ์ฒด

== vs. ===

์•„๋ž˜๋Š” Douglas Crockford์˜ JavasScript: The Good Parts์— ๋‚ด์šฉ์ด๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋‘๊ฐœ์˜ ๋น„๊ต ์—ฐ์‚ฐ์ž๊ฐ€ ์žˆ๋‹ค. ===/!== ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์•…ํ•œ ์Œ์ธ ==/!=๊ฐ€ ์žˆ๋‹ค. ===/!==๋Š” ๋‹น์‹ ์ด ๊ธฐ๋Œ€ํ•œ ๊ฒƒ๋Œ€๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋งŒ์•ฝ ๋‘ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋™์ผํ•œ ๊ฐ’๊ณผ ๋™์ผํ•œ ํƒ€์ž…์„ ๊ฐ–๋Š” ๊ฒฝ์šฐ ===๋Š” true๋ฅผ ์ƒ์„ฑํ•˜๊ณ , !==๋Š” false๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์‚ฌ์•…ํ•œ ์Œ์ธ ==/!=๋Š” ์„œ๋กœ ๊ฐ™์€ ํƒ€์ž…์ผ๋•Œ๋Š” ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋™์ž‘ํ•˜์ง€๋งŒ, ํƒ€์ž…์ด ๋‹ค๋ฅผ๋•Œ๋Š” ๊ฐ’์„ ๊ฐ•์š”ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๊ทธ๊ฒƒ๋“ค์ด ๋™์ž‘ํ•˜๋Š” ๊ทœ์น™์€ ๋ณต์žกํ•˜๊ณ  ๊ธฐ์–ตํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.
๋‹ค์Œ์— ํฅ๋ฏธ๋กœ์šด ์‚ฌ๋ก€๊ฐ€ ์žˆ๋‹ค.

'' == '0'           // false
0 == ''             // true
0 == '0'            // true

false == 'false'    // false
false == '0'        // true

false == undefined  // false
false == null       // false
null == undefined   // true

' \t\r\n ' == 0     // true

๋‚˜์˜ ์ถฉ๊ณ ๋Š” ์‚ฌ์•…ํ•œ ์Œ์„ ์‚ฌ์šฉํ•˜์ง€๋ง๊ณ  ํ•ญ์ƒ ===/!==๋ฅผ ์‚ฌ์šฉํ•˜๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ์œ„์—์„œ ํ‘œ์‹œ๋œ ๋ชจ๋“  ๋น„๊ต ์ƒํ™ฉ์—์„œ === ์—ฐ์‚ฐ์ž๋Š” false๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

Clone this wiki locally