IT/JavaScript

[JS-ERROR] 자바스크립트에서 name을 변수로 선언하니 밑줄이 그어진다.

Buang 2022. 5. 23. 15:47
반응형

자바스크립트를 실행시키고

 

name = "Andrew";

 

라고 적었다니

 

name = "Andrew"

 

이렇게 변수 name에 밑줄이 그어졌다.

 

VS Code에서 작업하고 있는데 이런 현상이 나타난다.

코드팬에서 작업하면 name에 밑줄이 그어지는 일은 나타나지 않는다.

 

도대체 왜지.

 

일단 가정 하나를 생각해서 정리해봤는데 

name은 변수로 예초에 사용할 수 없는 예약어이기 때문이다.

예약어는 printf, class, while처럼 이미 특정 기능을 가지고 있는 걸 예약어라고 한다.

 

조금 더 쉽게 설명하자면

 

char printf = "Andrew";

 

를 c++ 상에서 작성했다고 하자.

c++에서 위에처럼 작성하면 에러가 뜬다.

printf에는 이미 출력하는 기능이 담겨져 있는

즉 어떤 기능이 담긴 예약어이기 때문에

예) printf("hello");에서 printf는 출력하는 기능을 가지고 있어서

hello란 문자를 출력해줘!라고 명령할 수 있다.

 

그래서 printf를 변수명으로 사용하지 못한다.

 

 

자바스크립트에서 name도 특정 기능을 수행할 수 있다. 

예시로 input 태그를 만들었다면 해당 태그의 이름을 정해줄 때

name을 사용한다. 이게 도대체 무슨 소리일까? 싶다면 아래 예시를 봐보도록 하자.

 

 

 

HTML이란 언어에는 input 태그란 게 있다.

아이디를 입력받거나 비밀번호를 입력받거나 아니면

그냥 특정 문자를 입력받는 입력창을 만들 때 사용하는 게 input 태그다.

우리가 id를 입력할 때 네모칸이 있지 않은 가.

그 네모칸을 만들 때 input 태그란 걸 사용한다.

 

아무튼 그런 기능을 가진 아이가 있는데

 

가령 이 input 태그가 여러개 있다고 했을 때

자식이 여러명인데 이름을 안 지어주면 호칭하기 어렵듯이

이 input태그도 너무 많이 있는데 이름을 안 지어주면

구별하기가 어려워서 name이란 얘를 통해 이름을 지어주곤 한다.

 

<input type ="text" name = "ID">

 

맨 첫 번째 input 태그는 아이디를 입력받을 태그로 만든다고 가정해보자.

그래서 첫 번째 input 태그의 이름은 ID라고 하고 싶어!

라고 한다면 name=id를 작성함으로서

input 태그의 이름을 ID로 지어 줄 수 있다. 위에 작성한 코드가 그 예문이다.

 

<input type ="text" name = "password">

 

두 번째 input 태그에는 비밀번호를 넣는 칸으로 만들려고 한다.

이 두 번째 input 태그의 이름은 password라고 이름짓고 싶어, 라면

name = password 이렇게 해서 두 번째 input 태그의 이름을 password라고 지어줄 수 있다.

 

 

아직 HTML이나 CSS를 안 배웠다면

이게 무슨 소리인지 싶을 수도 있다. 

그럴 경우 그냥 name이란 아이는  

printf(파이썬으로 치면 print)처럼

이미 어떤 기능을 가지고 있는 아이니까

변수로 선언할 수 없다고 알아둬도 큰 문제는 없다. 

 

name_M = "Mike";

 

이렇게 하면 밑줄이 그어지지 않는다.

 

 

*공부를 하면서 작성하는 글입니다.

틀린 부분이 있다면 댓글로 남겨주시면 감사하겠습니다.

반응형