SyntaxError: missing name after . operator

λ©”μ‹œμ§€

SyntaxError: missing name after . operator

μ—λŸ¬ νƒ€μž…

무엇이 잘 λͺ» λ˜μ—ˆμ„κΉŒ?

점 μ—°μ‚°μž (.)λŠ” ν”„λ‘œνΌν‹° 접근을 μœ„ν•΄ μ‚¬μš©ν•©λ‹ˆλ‹€. μ ‘κ·Όν•΄μ•Ό ν•˜λŠ” ν”„λ‘œνΌν‹° λͺ…은 μ œλŒ€λ‘œ λͺ…μ‹œ ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ—°μ‚° ν”„λ‘œνΌν‹°μ— μ ‘κ·Όν•˜λ €λ©΄, 점 μ—°μ‚°μžλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  λŒ€κ΄„ν˜Έλ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμœΌλ‘œ ν”„λ‘œνΌν‹° μ ‘κ·Ό 방식을 λ°”κΏ”μ•Ό ν•©λ‹ˆλ‹€. 이런 방식듀이 ν‘œν˜„μ‹μ˜ 계산을 μˆ˜ν–‰μ‹œμΌœμ€„ κ²ƒμž…λ‹ˆλ‹€. μ•„λ§ˆ 당신은 연결을 ν•˜λ €κ³  ν–ˆμ„ κ²ƒμž…λ‹ˆλ‹€. 이 κ²½μš°μ—λŠ” λ”ν•˜κΈ° μ—°μ‚°μž(+)κ°€ ν•„μš”ν•©λ‹ˆλ‹€. μ•„λž˜μ˜ 예제λ₯Ό λ΄μ£Όμ„Έμš”. 

예제

ν”„λ‘œνΌν‹° μ ‘κ·Ό

JavaScript ν”„λ‘œνΌν‹° μ ‘κ·ΌμžλŠ” 점(.) λ˜λŠ” λŒ€κ΄„ν˜Έ([]) μ€‘ ν•˜λ‚˜λ§Œ μ‚¬μš©ν•œλ‹€. λŒ€κ΄„ν˜ΈλŠ” μ—°μ‚° ν”„λ‘œνΌν‹°μ— 접근을 ν—ˆμš©ν•©λ‹ˆλ‹€.   

var obj = { foo: { bar: "baz", bar2: "baz2" } };
var i = 2;

obj.[foo].[bar]
// SyntaxError: missing name after . operator

obj.foo."bar"+i;
// SyntaxError: missing name after . operator

이 μ½”λ“œλ₯Ό 고치렀면, μ˜€λΈŒμ νŠΈμ— 이런 μ‹μœΌλ‘œ μ ‘κ·Όν•΄μ•Ό ν•©λ‹ˆλ‹€.:

obj.foo.bar; // "baz"
// λ˜λŠ” λŒ€μ‹ μ—
obj["foo"]["bar"]; // "baz"

// μ—°μ‚° ν”„λ‘œνΌν‹°λŠ” λŒ€κ΄„ν˜Έκ°€ ν•„μš”ν•©λ‹ˆλ‹€.
obj.foo["bar" + i]; // "baz2"

ν”„λ‘œνΌν‹° μ ‘κ·Ό vs. μ—°κ²°

λ‹€λ₯Έ ν”„λ‘œκ·Έλž¨ μ–Έμ–΄λ₯Ό μ‚¬μš©ν•˜λ‹€ μ™”λ‹€λ©΄ ( PHP 같은), 점 μ—°μ‚°μž(.)와 μ—°κ²° μ—°μ‚°μž(+)λ₯Ό ν˜Όλ™ν•΄μ„œ μ“°κΈ°κ°€ 더 μ‰¬μšΈ κ²ƒμž…λ‹ˆλ‹€.

console.log("Hello" . "world");

// SyntaxError: missing name after . operator

λŒ€μ‹ μ— 결합을 μœ„ν•΄μ„œλŠ” λ”ν•˜κΈ° ν‘œμ‹μ„ μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.:

console.log("Hello" + "World");

μ°Έμ‘°