javaScript/error

js // syntax error (구문오류)

부엉이사장 2023. 5. 2. 04:44

# MDN정의

- SyntaxError 객체는 문법적으로 유효하지 않은 코드를 해석하려고 시도할 때 발생하는 오류를 의미합니다. Javascript 엔진이 코드를 구문 분석할 때 언어의 구문에 맞지 않는 토큰이나 토큰 순서를 만나면 이 오류를 던집니다.

 

 

# 일반적인 구문오류

console.log(dq')

이따구로 쓰면

이렇게 괄호안쳤다고 구문오류뜸

 

 

 

 

# 표현식이 아닌걸 변수에 담으려 할때

let value = const value1;

토큰이 이상하대..

위 코드는 선언'문'을 변수에 담으려고 해서 생긴 오류다. 선언문은 표현식이 아닌 문이다.

표현식인 문 vs 표현식이 아닌 문 포스팅은 아래 링크가세요.

https://jacobowl.tistory.com/137

 

값(value), 리터럴(literal), 표현식(expression), 문(statement)

# 리터럴(literal) 리터럴은 사람이 알아보는 기호로 적은 표기법을 말한다. 이전 '메모리에 저장되는 기본구조' 포스팅에서 컴퓨터는 데이터를 2진법으로 저장한다고 했었다. 메모리에 저장되는

jacobowl.tistory.com

 

+추가해서 브라우저 개발자 도구에서 표현식이 아닌 '문'을 실행하면 

undefined 가 뜬다.

위 코드에서 조건문 if는 표현식이 아닌 문이라서 undefined가 뜨는거

 

 

 

 

# 줄바꿈 개행문제

console.log('hello
world')

 

 

 

# const로 선언만 했을때

const value;

 

# 반복문의 break문을 이상한데서 썼을때

break

 

 

# 익명함수를 함수선언문처럼 썼을때

function (){
  console.log('hello world')
}

함수 문들은 함수이름이 필요하답니다~

 

 

 

# 표현식이 아닌 문을 콘솔로그로 쳤을때

console.log(let value = 1)

 

# let이나 const로 선언 두번이상했을때

let value = "바보";
let value = "멍충이";

 

# 접근자 프로퍼티 만들때 get에 파라미터를 만들어줘버리면..

const obj = {
  value : '메롱',
  get mix(para){
    console.log(para)
  }
}

getter함수에는 파라미터를 만들지 말라네용

 

# 접근자 프로퍼티 만들때 set에 파라미터 안만들어주면..

const myHouse = {
  dog1: "무찌",
  dog2: "도리",
  get teamName() {
    return this.dog1 + this.dog2 + "듀오";
  },
  set teamName() {
    
  },
};

..................UPDATING.................