문제의 코드는 다음과 같습니다.
var $item = $(this).parent().parent().find('input');
변수 이름에서 달러 기호의 목적은 무엇입니까, 왜 제외하지 않습니까?
document.querySelector
하고document.querySelectorAll
문제의 코드는 다음과 같습니다.
var $item = $(this).parent().parent().find('input');
변수 이름에서 달러 기호의 목적은 무엇입니까, 왜 제외하지 않습니까?
document.querySelector
하고document.querySelectorAll
답변:
변수에서 '$'는 밑줄과 같이 해석기에 특별한 의미가 없습니다.
내가 본 것에서 jQuery를 사용하는 많은 사람들 (예제 코드가 나에게 보이는 모양)은 jQuery 객체를 포함하는 변수 앞에 $를 붙여서 쉽게 식별되고 정수와 섞이지 않도록합니다. .
$()
jQuery 의 달러 기호 함수 는 자주 사용되는 라이브러리 함수이므로 짧은 이름이 바람직합니다.
var $=function(){}
것은하는 것과 매우 같습니다 var a=function(){}
.
jQuery(document).ready(function($){
. 그런 다음 $는 함수 구현 내부에서 사용된다.
$scope
$ 의 경우 해당 이름의 문자 중 하나입니다. e
의 끝에서 이륙하는 것처럼 $scope
작동하지 않으므로 의지를 취하는 $
것도 작동하지 않습니다. 와 같이 보이는 $( "a" ).addClass( "test" )
경우 달러 기호는 그 이름의 전체 이름입니다.
귀하의 예에서 $는 이름의 성격 이외의 특별한 의미가 없습니다.
그러나 ECMAScript 6 (ES6)에서 $는 템플릿 리터럴을 나타낼 수 있습니다.
var user = 'Bob'
console.log(`We love ${user}.`); //Note backticks
// We love Bob.
$ 기호는 변수 및 함수의 식별자입니다.
그것은 달러 기호가 무엇인지에 대한 명확한 설명이 있습니다.
대체 설명은 다음과 같습니다. http://www.vcarrer.com/2010/10/about-dollar-sign-in-javascript.html
달러 기호는 일반 문자 나 밑줄처럼 처리됩니다 (_
) 됩니다. 통역사에게는 특별한 의미가 없습니다.
많은 다른 언어와 달리 Javascript의 식별자 (예 : 기능 및 변수 이름)는 문자, 숫자 및 밑줄뿐만 아니라 달러 기호도 포함 할 수 있습니다 . 심지어 달러 기호로 시작하거나 달러 기호 만으로 구성 할 수 있습니다.
따라서 $
Javascript에서 유효한 함수 또는 변수 이름입니다.
왜 식별자에 달러 기호를 원하십니까?
이 구문은 실제로 식별자에서 달러 기호의 특정 사용법을 강요하지 않으므로 사용 방법에 달려 있습니다. 과거에는 생성 된 코드 , 즉 수작업이 아닌 코드 생성기에서 만든 코드 에서만 달러 기호로 식별자를 시작하는 것이 좋습니다 .
그러나 귀하의 예에서는 그렇지 않습니다. 누군가가 재미를 위해 처음에 달러 기호를 넣은 것처럼 보입니다. 아마도 습관을 잃은 PHP 프로그래머 일 것입니다. PHP에서 모든 변수 이름 앞에 달러 기호가 있어야합니다.
오늘날 인터프리터에서 달러 기호에 대한 또 다른 일반적인 의미가 있습니다. jQuery 객체의 이름 은 단일 달러 기호 ( ) 로만 구성됩니다 $
. 이것은 프로토 타입과 같은 이전 Javascript 프레임 워크에서 빌린 규칙이며, jQuery를 다른 프레임 워크와 함께 사용하는 경우 이름을 모두 사용하기 때문에 이름 충돌이 발생합니다 $
(jQuery는 글로벌 오브젝트에 다른 이름을 사용하도록 구성 할 수 있음) . Javascript에는 jQuery가 단일 달러 기호를 객체 이름으로 사용할 수있는 특별한 것이 없습니다. 위에서 언급했듯이 이는 또 다른 유효한 식별자 이름 일뿐입니다.
var $j = jQuery.noConflict();
이제 $ j는 jQuery 객체입니다.
달러 기호는 ecmascript 2015-2016에서 '서식 파일 리터럴'로 사용됩니다. 예:
var a = 5;
var b = 10;
console.log(`Sum is equal: ${a + b}`); // 'Sum is equlat: 15'
실제 예제는 다음과 같습니다. https://es6console.com/j3lg8xeo/ 이 표시에 주목하십시오 " ` 따옴표 "는 일반적인 따옴표가 아닙니다.
라이브러리 jQuery로 작업하면서 U도 $를 만날 수 있습니다. .
정규 표현식 에서 $ 기호 는 줄 끝을 의미합니다.
다음은 좋은 짧은 비디오 설명입니다. https://www.youtube.com/watch?v=Acm-MD_6934
Ecma 국제 식별자에 따르면 이름은 유니 코드 표준 5 장의 "식별자"섹션에 나와 있는 문법에 따라 약간 수정 된 토큰입니다 . 식별자는 ReservedWord가 아닌 IdentifierName입니다 ( 7.6.1 참조 ). 유니 코드 식별자 문법은 유니 코드 표준에 의해 지정된 규범 적 및 유익한 문자 범주를 기반으로합니다. 유니 코드 표준 버전 3.0에서 지정된 범주의 문자는 모든 ECMAScript 구현에 따라 해당 범주에서와 같이 처리되어야합니다.이 표준은 특정 문자 추가를 지정합니다.
달러 기호 ($)와 밑줄 (_)은 IdentifierName의 어느 곳에서나 허용됩니다 .
자세한 내용은 http://www.ecma-international.org/ecma-262/5.1/#sec-7.6을 참조하십시오.
Ecma International 은 1961 년에 설립 된 산업 협회로서 정보 통신 기술 (ICT) 및 가전 제품 (CE)의 표준화에 전념하고 있습니다.
jQuery를 사용할 때 $
변수 이름의 접두사로 symbol을 사용하는 것은 단지 규칙에 의한 것입니다. 완전히 선택 사항이며 예제와 같이 변수에 jQuery 객체가 있음을 나타냅니다.
즉, 객체에서 다른 jQuery 함수를 호출해야 할 때 $()
다시 래핑 할 필요가 없습니다 . 예를 들어 다음을 비교하십시오.
// the usual way
var item = $(this).parent().parent().find('input');
$(item).hide(); // this is a double wrap, but required for code readability
item.hide(); // this works but is very unclear how a jQuery function is getting called on this
// with $ prefix
var $item = $(this).parent().parent().find('input');
$item.hide(); // direct call is clear
$($item).hide(); // this works too, but isn't necessary
$
접두사를 사용하면 이미 jQuery 객체를 보유한 변수를 즉시 인식 할 수 있고 코드를 더 쉽게 읽을 수 있으며로 이중 / 다중 줄 바꿈을 제거 $()
합니다.