[javascript] jQuery가 아닌 경우 Javascript의 달러 기호는 무엇입니까?

몇 년 전에 자바 스크립트 / jQuery 프로그래밍을했고 방금 다시 시작했습니다. 당시에는 달러 기호가 모든 jQuery 기능에 사용되었으며 jQuery 라이브러리를 가져 오지 않은 경우 달러 기호가 정의되지 않았습니다.

오늘 저는 자바 스크립트 라이브러리가없는 완전히 빈 html 파일로 Firefox를 시작했지만 달러 기호는 무언가를 가리 킵니다. Firefox 콘솔을 열고 ‘$’를 입력 하면 "function()".

1) 몇 년 전에 달러 기호가 지정되지 않은 것이 맞습니까, 아니면 잘못 기억합니까?

2) jQuery가 아니라면 달러 기호 는 무엇입니까 ?



답변

1) 몇 년 전에 달러 기호가 지정되지 않은 것이 맞습니까, 아니면 잘못 기억합니까?

그것은 정확하고 여전히 사실입니다.

2) jQuery가 아니라면 달러 기호는 무엇입니까?

FirefoxChrome$, $$및 기타 여러 가지를 도우미 명령으로 구현 합니다. 둘 다 설정합니다 $$document.querySelectorAll(), 그리고 세트 $document.querySelector있는 경우 window.$정의되지 않았습니다.

그래서 여러분이보고있는 것은 실제로 표준 JavaScript가 아니라 브라우저의 개발자 콘솔에있는 도우미입니다. 또한 jQuery가 아닙니다 (jQuery를 사용하는 페이지에 있지 않는 한). 그러나 (단일 일치의 경우) 및 (다중 일치의 경우) jQuery 선택기와 거의 동일한 강도를 제공 jQuery한다는 점에서의 동작 querySelectorquerySelectorAll비슷합니다.


답변

통역사에게는 밑줄처럼 의미가 없습니다.

ECMAScript 사양에서 :

달러 기호 ($)와 밑줄 (_)은 식별자 어디에서나 허용됩니다. 달러 기호는 기계적으로 생성 된 코드에서만 사용하기위한 것입니다.

JavaScript 달러 기호 ($)를 확인할 수도 있습니다. 용도는 무엇입니까?

관례에 따라 달러 기호 ($), 밑줄 (_) 및 일부 ASCII 문자도 JavaScript 식별자의 모든 위치에서 사용할 수 있습니다 (출처 : Ecma Script 문서 (7.6 식별자, ECMA-262, 3rd Ed.) 달러 기호는 기계적으로 생성 된 코드에서만 사용하기위한 것입니다. 이는 프레임 워크를 작성하지 않는 한 식별자 이름에 달러 기호 ($)를 사용하지 않음을 의미합니다. 다음은 사용할 수있는 허용 된 문자 목록입니다. 식별자 이름의 모든 위치 :

IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart
IdentifierStart ::
UnicodeLetter
$
_
UnicodeEscapeSequence
IdentifierPart ::
IdentifierStart
UnicodeCombiningMark
UnicodeDigit
UnicodeConnectorPunctuation
UnicodeEscapeSequence

편집하다:-

실제로 달러 기호 기능은 document.getElementById().

내 포인트 확인 확인하려면 :

$ (선택기)

주어진 CSS 선택자와 일치하는 단일 요소를 반환합니다. 예전 Firebug 버전 에서 이것은 document.getElementById 와 동일했습니다
.


답변

Dollar sign($) 할당되지 않았지만 일부 브라우저는 특수 용도로 기능을 추가합니다.

Google 크롬과 마찬가지로 $콘솔에 입력하면 다음 이 반환됩니다.

function $(selector, [startNode]) { [Command Line API] }

이 기능은 Google Chrome 개발자 도구에 할당되었으며 더 쉽게 디버그 할 수 있습니다.

을 입력하면 $('div')다음과 같은 결과가 반환됩니다.

e.fn.e.init[178]

모든 divDOM 개체를 포함합니다.

BTW, 마우스 오른쪽 버튼을 클릭하여 요소를 선택한 $scope후 콘솔에서 유형별로 angular.js 범위에 액세스 할 수 있습니다.


답변

참고 $$아주없는 document.querySelectorAll그 기능을 달리 그것은 반환하지 않기 때문에 NodeList:

document.querySelectorAll("p") instanceof NodeList // true

$$("p") instanceof NodeList // false

Array.isArray($$("p")) // true

그래서 $$(selector)정말 더 비슷 Array.from(document.querySelectorAll(selector))합니다. 이것은 실제로 매우 유용한를 사용할 때 map뿐만 아니라와 같은 배열 메서드를 forEach사용할 수 있음을 $$의미합니다.


답변

$유효한 변수 이름처럼 무엇이든 될 수 있습니다 dollar.

에서 ECMAScript를 :

Identifier ::
IdentifierName but not ReservedWord

IdentifierName ::
IdentifierStart
IdentifierName IdentifierPart

IdentifierStart ::
UnicodeLetter
$
_
\ UnicodeEscapeSequence

그것이 무엇인지, 어디에 정의되어 있는지 확인하는 가장 간단한 해결책은 아마도이 줄에 중단 점 을 입력 $()하고 놓는 것입니다 .


답변

여기에서 다른 답변을 완료하기 위해 MooTools는 $별칭으로 도 사용 합니다.document.getElementById .

이 (가) 사용되는지 확인한 $다음 기본값으로 document.id.


답변