언어/자바스크립트

[Javascript] $(Dollar Sign), _ (Underscore) 식별자

youngble 2022. 7. 5. 21:09

코어자바스크립트를 보다가 변수이름앞에 $을 붙이거나 _ 가 있는것을 보고 이게 무슨의미인가 찾아보았는데 

단순히 식별자 로써 사용할수있다고한다.  다른 특수문자나 숫자 등은 맨앞에 붙일수없지만 $(Dollar Sign)와 _(Underscore)는 사용할수있다고 한다.

그런데 관례(?)적으로 변수앞에 $을 쓸때 보통 document.getElemetById 를 쓸때 사용한다고도 하고 jQuery 객체를 담을때 사용한다고 하는데 이렇게 들으면 애매하지만 예시를 보면 언제 쓰이면 좋은지 알수있다.

 

보통 변수안에 값을 할당해줄때 string, number, function, object 형식으로 이루워진다.

일반적인 변수명과 할당

const a = 1;
let b = 'a';
const c = function (){ return '안녕'; }
const d = {
    first : 'hi',
    two : 'my name',
}

 

$ Dollar Sign  식별자

하지만 자바스크립트를 사용할때 이외에도 Dom 객체를 담아서 사용할수도있고, 해당 메서드를 사용할수도있다 이럴때 어떤 변수의 타입인지 쉽게 분리해서 볼수있기 때문이다 다음 아래를 보면알수있다.

const $a = document.createElement('li');
const $ = (id) =>{
	return document.getElementById(id);
}

 

let fruits = ['apple', 'banana', 'peach'];
let $ul = document.createElement('ul');

fruits.forEach(function (fruit) {
	let $li = document.createElement('li');
    $li.innerText = fruit;
    $li.addEventListener('click', function () {
    	alert('your choice is '+fruit);
    });
    $ul.appendChild($li);
    });
    
    document.body.appendChild($ul);

 

 

다음과 같이 엘레멘트들과 관련된 함수들을 사용하면 일반적인 값을 할당하는게 아닌 dom 객체 요소들에 해당하기때문에 좀더 쉽게 무슨 역할을 하는지 알수있기 때문이다.

 

아마 내생각엔 이러한 자주쓰이는 $로 인해서 JQuery 라이브러리에서도 이걸 기준으로 쓰는거 같다.

_ under score, 언더스코어 식별자

이와같이 _ 같은경우도 주로 사용하는 의미가 있는데  함수의 매개변수로 언더바( _ )를 사용하는 것은 JavaScript 개발자들의 관습이라고 할 수 있는데, normalFunc의 첫 번째 매개변수가 중요하지 않다는 것을 표현하기 위해 단독으로 언더바( _ )로 선언합니다

또한 변수앞에 _써서 '_변수' 와 같은 형태는 접근제어자 private의 특성 이 적용되어야 하는 변수나 함수 앞에 그것을 명시하고자 쓰여왔다.

public과 private을 즉시 식별할 수있는 빠르고 쉬운 방법이다.

public, private 키워드를 사용하지 않고 필드를 정의하면 유용하다.

따라서 $ 나 _ 는 식별자로써 사용할수있으면서도 관례적으로 해당 하는 역할이 있다.