πŸ“ ν‘œν˜„μ‹κ³Ό μ—°μ‚°μž

πŸ’² κΈ°λ³Έ ν‘œν˜„μ‹

  • this

thisλŠ” μƒμˆ˜κ°€ μ•„λ‹ˆκ³  ν”„λ‘œκ·Έλž¨ μ•ˆμ—μ„œ μœ„μΉ˜μ— 따라 각기 λ‹€λ₯Έ κ°’μœΌλ‘œ ν‰κ°€λœλ‹€. this ν‚€μ›Œλ“œλŠ” 객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 주둜 μ‚¬μš©λœλ‹€. λ©”μ„œλ“œμ˜ λ³Έλ¬Έ μ•ˆμ—μ„œ thisλŠ” λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•œ 객체 자기 μžμ‹ μœΌλ‘œ 여겨진닀.

πŸ’­ ν•¨μˆ˜ μ •μ˜ ν‘œν˜„μ‹

ν•¨μˆ˜ μ •μ˜ ν‘œν˜„μ‹μ€ ‘ν•¨μˆ˜ λ¦¬ν„°λŸ΄'이라 ν•  수 μžˆλ‹€.

var square = function(x){return x*x;}

πŸ“± μ—°μ‚°μž

OP description return
delete ν”„λ‘œνΌν‹°λ₯Ό 제거 boolean
typeof ν”Όμ—°μ‚°μžμ˜ νƒ€μž… λ¬Έμžμ—΄
instanceof 객체 νƒ€μž… 확인 boolean
?: 쑰건뢀 μ—°μ‚°μž νƒ€μž… 무방

πŸ” λΉ„νŠΈ λ‹¨μœ„ μ—°μ‚°μž

  • λΉ„νŠΈ λ‹¨μœ„ AND(&) - λΉ„κ΅ν•˜λŠ” λΉ„νŠΈκ°€ λͺ¨λ‘ 1이라면 1λ°˜ν™˜

  • λΉ„νŠΈ λ‹¨μœ„ OR(|) - λΉ„κ΅ν•˜λŠ” μœ„μΉ˜μ— λΉ„νŠΈκ°€ μ„€μ • λ˜μ–΄ 있으면 ν•΄λ‹Ή λΉ„νŠΈλ‘œ μ„€μ •

  • λΉ„νŠΈ λ‹¨μœ„ XOR(^) - λΉ„κ΅ν•˜λŠ” μœ„μΉ˜μ— λΉ„νŠΈμ€‘ ν•˜λ‚˜κ°€ trueμ΄μ§€λ§Œ λ‘˜λ‹€ trueλŠ” μ•„λ‹λ•Œ κ²°κ³Όκ°€ trueκ°€ λœλ‹€

  • λΉ„νŠΈ λ‹¨μœ„ NOT(~) - λͺ¨λ“  λΉ„νŠΈλ₯Ό λ°˜μ „

  • λ ˆν”„νŠΈ μ‹œν”„νŠΈ(«) - μ§€μ •ν•œ 수만큼 λΉ„νŠΈ 전체λ₯Ό μ™Όμͺ½μœΌλ‘œ 이동

  • 라이트 μ‹œν”„νŠΈ(») - μ§€μ •ν•œ 수만큼 λΉ„νŠΈ 전체λ₯Ό 였λ₯Έμͺ½μœΌλ‘œ 이동

  • 0으둜 μ±„μš°λ©΄μ„œ 였λ₯Έμͺ½μœΌλ‘œ 이동(»>) - μ§€μ •ν•œ 수만큼 λΉ„νŠΈλ₯Ό μ „λΆ€ 였λ₯Έμͺ½μœΌλ‘œ 이동 μƒˆλ‘œμš΄ λΉ„νŠΈλŠ” μ „λΆ€ 0이 λœλ‹€.

❓ λ™μΉ˜μ™€ λΆ€λ“±μΉ˜ μ—°μ‚°μž

=(ν• λ‹Ή), ==(λ™μΉ˜), ===(일치)

  • = : ν• λ‹Ή
  • == : λ™λ“±ν•œ 관계, νƒ€μž…λ³€ν™˜μ„ μ‹œλ„ν•œ 후에 비ꡐλ₯Ό λ‹€μ‹œ ν•˜κ²Œλœλ‹€
  • === : 쒀더 μ—„ν•œ κ·œμΉ™, 같은 μ°Έμ‘°λ₯Ό ν•˜κ³  μžˆλŠ” κ²½μš°μ— true

in μ—°μ‚°μž

μ’Œλ³€μ˜ 속성을 μš°λ³€μ΄ 포함 ν•˜κ³  μžˆμ„λ•Œ.

var point = { x:1, y:1};
"x" in point						// true
"z" in point						// false
"toString" in point					// true : μƒμ†λœ ν”„λ‘œνΌν‹°
var data = [7,8,9];
"0" in data						// true : 배열에 0번째 μ›μ†Œκ°€ μžˆμ–΄μ„œ
1 in data						// true : 배열에 1번째 μ›μ†Œκ°€ 있기 λ•Œλ¬Έμ—
3 in data						// false

instanceof μ—°μ‚°μž

ν”Όμ—°μ‚°μžμ˜ μƒμœ„ν΄λž˜μŠ€μ— 객체가 μ†ν•˜λŠ”μ§€ νŒλ‹¨

var date = new Date();
d instanceof Date;   // true
d instanceof Object; // true

eval() 평가 ν‘œν˜„μ‹

λ¬Έμžμ—΄ (둜 이루어진 μ½”λ“œ) 을 μžλ°”μŠ€ν¬λ¦½νŠΈλ‘œ ν•΄μ„ν•˜κ³  κ²°κ³Όλ₯Ό κ°’μœΌλ‘œ 좜λ ₯ν•˜λŠ” κΈ°λŠ₯

eval("3+2")				// => 5

var d;
eval("d = new Date;");			// => Mon Apr 29 2019 20:40:10 GMT+0900 (ν•œκ΅­ ν‘œμ€€μ‹œ) {}
βœ”οΈ 전달 ν•˜λ €λŠ” λ¬Έμžμ—΄μ΄ λ…λ¦½λœ μŠ€ν¬λ¦½νŠΈλ‘œμ„œ λ¬Έμ œκ°€ μ—†μ„λ•Œ μ‚¬μš©ν•˜λŠ”κ²ƒμ— μœ μ˜ν•˜μ—¬μ•Ό ν•œλ‹€.

?: 쑰건뢀 μ—°μ‚°μž

x > 0 ? x : -x             // x의 μ ˆλŒ€ 값을 κ΅¬ν•œλ‹€.
greeting = "hello " + (username ? username : "there");
// 'username'이 true 즉, username에 λ³€μˆ˜κ°€ μ •μ˜λ˜μ–΄ μžˆμ§€μ•Šλ‹€λ©΄ "there"λ₯Ό μ‚¬μš©ν•˜λŠ”κ²ƒ λ¬Έμž₯

typeof μ—°μ‚°μž

(type value == "string") ? "'" + value "'" : value;
// value의 νƒ€μž…μ΄ λ¬Έμžμ—΄μ΄λΌλ©΄ λ¬Έμžμ—΄ 'value'λ₯Ό λ°˜ν™˜

delete μ—°μ‚°μž

var o = {x:1, y:2};
delete o.x;						// return true
"x" in o;						// false

var array = [1,2,3];
delete a[2];
2 in a;							// false
a.length;						// βœ”οΈ 3 λ°°μ—΄μ˜ κΈΈμ΄λŠ” λ³€ν•˜μ§€ μ•ŠλŠ”λ‹€.