몇 년 전에 자바 스크립트 / jQuery 프로그래밍을했고 방금 다시 시작했습니다. 당시에는 달러 기호가 모든 jQuery 기능에 사용되었으며 jQuery 라이브러리를 가져 오지 않은 경우 달러 기호가 정의되지 않았습니다.
오늘 저는 자바 스크립트 라이브러리가없는 완전히 빈 html 파일로 Firefox를 시작했지만 달러 기호는 무언가를 가리 킵니다. Firefox 콘솔을 열고 ‘$’를 입력 하면 "function()"
.
1) 몇 년 전에 달러 기호가 지정되지 않은 것이 맞습니까, 아니면 잘못 기억합니까?
2) jQuery가 아니라면 달러 기호 는 무엇입니까 ?
답변
1) 몇 년 전에 달러 기호가 지정되지 않은 것이 맞습니까, 아니면 잘못 기억합니까?
그것은 정확하고 여전히 사실입니다.
2) jQuery가 아니라면 달러 기호는 무엇입니까?
Firefox 및 Chrome 은 $
, $$
및 기타 여러 가지를 도우미 명령으로 구현 합니다. 둘 다 설정합니다 $$
에 document.querySelectorAll()
, 그리고 세트 $
에 document.querySelector
있는 경우 window.$
정의되지 않았습니다.
그래서 여러분이보고있는 것은 실제로 표준 JavaScript가 아니라 브라우저의 개발자 콘솔에있는 도우미입니다. 또한 jQuery가 아닙니다 (jQuery를 사용하는 페이지에 있지 않는 한). 그러나 (단일 일치의 경우) 및 (다중 일치의 경우) jQuery 선택기와 거의 동일한 강도를 제공 jQuery
한다는 점에서의 동작 querySelector
과 querySelectorAll
비슷합니다.
답변
통역사에게는 밑줄처럼 의미가 없습니다.
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]
모든 div
DOM 개체를 포함합니다.
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
.
답변
