JavaScript와 관련하여 첫 번째 더 중요한 개념은 변수이며 변수의 작동 메커니즘은 JavaScript의 기본 기능입니다. 실제로 변수는 식별자 유형입니다. 이 기사는 변수와 식별자를 자세히 소개합니다
정의
식별자는 변수, 함수, 속성 및 매개 변수 이름을 지정하거나 특정 루프 문의 점프 위치에 대한 마커로 사용하는 데 사용되는 이름입니다.
// variable var var identifier = // 속성 (새 개체) .Inderifier = 'test'; // 함수 및 매개 변수 함수 identifierName (identifier1) {}; // 점프 태그 식별자 : for (var i = 0; i <5; i ++) {if (i == 3) {break identifier; }}일상 생활에서는 어떤 것들이 고정되어 있고 일부는 변합니다. 예를 들어, 사람의 이름과 생일은 고정되어 있지만 그의 기분과 나이는 시간이 지남에 따라 변합니다. 사람들은 변수를 바꾸는 것을 부릅니다
프로그램이 향후 사용을 위해 값을 저장 해야하는 경우 변수에 할당됩니다. 변수는 값을 절약하기위한 자리 표시 자입니다. 변수 이름을 통해 값에 대한 참조를 얻을 수 있습니다.
이름 지정 규칙
"Lexicon Structure"라는 기사에서, 우리는 JavaScript가 사례에 민감한 언어임을 소개합니다. 다른 프로그래밍 언어와 마찬가지로 JavaScript는 일부 식별자 자체를 유지하며 예약 된 단어는 일반 식별자로 사용할 수 없습니다.
[참고] 예약 된 단어에는 키워드, 향후 예약 단어, 빈 리터럴 및 부울 리터럴이 포함됩니다.
예약 단어 :: 키워드 FuturereservedWord NullLiteral 부울 문학적
JavaScript 식별자 이름은 문자, 숫자, 달러 표지판 및 밑줄을 포함 할 수 있습니다 (그러나 첫 번째 문자는 숫자가 허용되지 않습니다)
// 오류 데모 6num // 시작 부분에서 숫자% 합을 사용할 수 없습니다. // (_ $)를 제외한 특수 기호 (_ $)를 제외한 (% + /등) sum + num // (_ $)를 제외한 특수 기호는 (_ $)를 제외한 (% + /등)를 사용할 수 없습니다.
JavaScript는 식별자의 전체 유니 코드 문자 세트에서 문자와 숫자 (중국어 포함)를 허용합니다. 따라서 프로그래머는 영어 이외의 언어 또는 수학적 기호를 사용하여 식별자를 작성할 수 있습니다.
var 테스트 텍스트 = '테스트';
[참고] 휴대 성과 편의성을 위해, 우리는 일반적으로 확장 된 ASCII 또는 유니 코드 문자를 사용하지 않습니다.
일반적으로 낙타 형식은 식별자 이름 지정에 선호되는 형식이며, 첫 번째 문자는 소문자이며, 나머지 단어의 첫 번째 문자는 대문자입니다.
var myMoodToday = '행복';
다른 데이터 유형의 경우 JavaScript에는 기존 식별자 명명 규칙이 있습니다.
유형 접두사 예제 배열 (배열) A aitems 부울 (부울) B Biscomplete 부동 소수점 번호 (플로트) fprice 함수 (함수) fn fnhandler integer (Integer) iiitemcount 객체 (객체) o Odiv1 정규식 (Regexp) Reemailcheck String (String) Susername Variable () Susername vanything v vanything v vanything v vanything
변수 선언
성명
JavaScript에서는 변수를 사용하기 전에 선언 (선언)해야합니다. 변수는 키워드 var (변수의 약어)를 사용하여 선언됩니다.
var i; var sum;
VAR 키워드를 통해 여러 변수를 선언 할 수도 있습니다.
var i, 합;
과제
값을 변수에 저장하는 작업을 할당이라고합니다. 변수가 할당 된 후 변수 에이 값이 포함되어 있다고 말합니다.
처음으로 변수를 할당하는 프로세스를 초기화라고합니다.
변수 선언과 함께 변수의 초기 할당을 쓸 수 있습니다.
var 메시지 = 'hello'; var i = 0, j = 0, k = 0;
변수가 var 선언문에 지정되지 않은 경우 변수가 선언 되더라도 값을 저장하기 전에 초기 값이 정의되지 않습니다.
VAR 문은 루프 및 루프 구문에 사용되는 루프 변수를보다 간결하게 선언 할 수있는 루프 및 루프에 사용될 수 있습니다.
for (var i = 0; i <10; i ++) console.log (i);
선언시 변수는 값을 할당 할 수 있지만 +=, -= 등과 같은 다른 작업은 없습니다.
var a = 2; //는 맞습니다 var a+= 2; // 잘못되었습니다 var a = 2 ++; // ++는 변수에만 사용할 수 있습니다. 상수가 아닌 변수에만 사용할 수 있습니다.
반복 성명서
VAR 문을 사용하여 변수를 반복적으로 선언하는 것은 합법적이고 무해합니다. 선언이 과제 작업으로 반복되는 경우 값을 재 할당하는 것과 같습니다.
누락 된 진술
선언되지 않은 변수의 값을 읽으려고하면 JavaScript가 오류를보고합니다.
JavaScript는 생략 된 선언, 즉 사전 선언없이 변수에 값을 직접 할당 할 수 있으며 할당 작업은 변수를 자동으로 선언합니다.
그러나 ECMAScript5 엄격한 모드에서는 선언되지 않은 변수에 값을 할당하면 오류가 발생합니다.
<cript> 'strict'; a = 5; console.log (a); </script>
가변 특성
JavaScript 변수는 약한 유형 (느슨한 유형이라고도 함)이며 소위 느슨한 유형은 모든 유형의 데이터를 저장하는 데 사용됩니다.
프로그래밍 언어 분류 : 동적 유형 언어 및 정적 유형 언어. 동적 유형 언어는 작동 중에 데이터 유형 확인 만 수행하는 언어를 나타냅니다. 즉, 동적 유형 언어로 프로그래밍 할 때 변수에 대한 데이터 유형을 지정할 필요가 없습니다. 언어는 처음으로 변수에 값을 할당하면 데이터 유형을 내부적으로 기록합니다. JavaScript는 동적으로 입력 한 언어를 대표합니다.
JavaScript에서는 값을 수정하면서 값의 유형을 수정할 수 있습니다.
var message = 'hi'; message = 100; // 유효하지만 권장되지 않습니다
느슨한 유형의 변수의 특성을 요약하는 두 가지 점이 있습니다. 하나는 선언 할 때 변수의 데이터 유형을 지정할 필요가 없다는 것입니다. 다른 하나는 값을 할당 할 때 데이터 유형을 수정할 수 있다는 것입니다.
가변 범위
실행 컨텍스트라고도하는 변수의 범위는 프로그램 소스 코드 에서이 변수를 정의하는 영역입니다.
스코프는 글로벌 범위 및 기능 범위 (로컬 범위라고도 함)로 나뉩니다.
글로벌 범위는 가장 말초 실행 환경입니다. 웹 브라우저에서 글로벌 실행 환경은 창 객체로 간주됩니다. 모든 글로벌 변수 및 함수는 창 객체의 속성 및 방법으로 작성됩니다. 글로벌 변수에는 글로벌 범위가 있으며 JavaScript 코드의 어느 곳에서나 정의됩니다. 예를 들어 응용 프로그램이 종료 될 때까지 글로벌 범위는 파괴되지 않습니다. 예를 들어 웹 페이지 나 브라우저가 닫힙니다.
함수 내에서 선언 된 변수는 함수 본문에만 정의됩니다. 그것들은 로컬 변수이며 그들의 범위는 로컬입니다. 함수 매개 변수는 또한 로컬 변수이며 기능 본문에서만 정의됩니다. 함수 범위의 모든 코드가 실행되면 범위가 파괴되고 저장된 모든 변수 및 기능 정의도 파괴됩니다.
함수 test () {var message = 'hi';} test (); alert (message); // errorvar 연산자가 생략되면 전역 변수가 생성됩니다.
함수 test () {message = 'hi';} test (); alert (message); // 'hi'VAR 운영자를 생략하면 전역 변수를 정의 할 수 있지만 권장되지 않습니다. 로컬 범위로 정의 된 글로벌 변수는 유지하기가 어렵고 VAR 운영자가 의도적으로 무시되면 해당 변수가 즉시 정의되지 않기 때문에 불필요한 혼란도 발생합니다. 엄격한 모드에서 선언되지 않은 변수에 값을 할당하면 참조 오류가 발생합니다.
기능 본문에서 로컬 변수의 우선 순위는 동일한 이름의 글로벌 변수보다 높습니다. 함수 또는 함수 매개 변수의 변수 및 글로벌 변수에 선언 된 로컬 변수가 복제 된 경우, 글로벌 변수는 로컬 변수에 의해 커버됩니다.
var scope = 'global'; function checkscope () {var scope = 'local'; return scope;}; checkScope (); // 'local'성명서 프로모션 (호이 스팅)
블록 레벨 범위
블록 레벨 범위는 Curly Braces의 각 코드에 고유 한 범위가 있고 JavaScript는 블록 레벨 스코프가 없음을 의미합니다. JavaScript에는 함수 범위 만 있습니다. 변수는 기능 본문에 정의되어 있으며이 기능 본문에 중첩 된 기능 본체를 선언합니다.
이는 변수가 선언되기 전에도 사용할 수 있음을 의미합니다. JavaScript 의이 기능을 비공식적으로 Hoisting이라고합니다. JavaScript 함수 (관련된 할당 없음)로 선언 된 모든 변수는 기능 본문의 상단으로 진행됩니다.
[참고] 실제로 변수 프로모션 외에도 기능도 홍보되며 기능 섹션에 대한 자세한 소개가 있습니다.
var scope = 'global'; function f () {console.log (scope); // 정의되지 않은 var scope = 'local'; Console.log (스코프); // 'local'} // 변수 선언이 홍보 된 후에는 다음 코드 var var scope = 'global'; function f () {var scope; console.log (scope); // 정의되지 않은 스코프 = '로컬'; Console.log (스코프); // 'local'}JavaScript에는 블록 수준 범위가 없으므로 일부 프로그래머는 의도적으로 기능 본문 상단에 가변 선언을합니다. 이 소스 코드는 실제 변수 범위를 명확하게 반영합니다.
속성 변수
JavaScript Global Variable을 선언 할 때 실제로 글로벌 객체 창의 속성을 정의합니다.
VAR을 사용하여 변수가 선언되면 생성 된 변수는 구성 가능하지 않으므로 삭제 연산자를 통해 변수를 삭제할 수 없습니다.
var truevar = 1; console.log (truevar, wind
엄격한 모드를 사용하지 않고 선언되지 않은 변수에 값을 할당하면 JavaScript는 자동으로 전역 변수를 생성합니다. 이러한 방식으로 생성 된 변수는 글로벌 객체의 정상적인 구성 가능한 속성이며 삭제할 수 있습니다.
Window.fakeVar1 = 10; console.log (가짜 Var1, Window.fakeVar1); // 10 10 this.fakevar2 = 20; console.log (가짜 Var2, Window.fakeVar2); // 20 20fakevar = 30; console.log (가짜 Var, Window.FakeVar); // 30 30delete window.fakevar1; // truedelete this.fakevar2; // truedelete fakevar; // trueconsole.log (wakevar1, wind // 오류 Console.Log (가짜 Var, Window.FakeVar)를보고합니다. // 오류를보고합니다
JavaScript 글로벌 변수는 ECMAScript에서 필수 인 글로벌 객체의 속성입니다. 로컬 변수는 함수 호출과 관련된 객체의 속성으로 취급됩니다. ECMAScript3은 호출 객체라고하며 ECMASCRIPT5를 선언적 환경 레코드라고합니다. JavaScript는이 키워드를 사용하여 글로벌 객체를 참조 할 수 있지만 로컬 변수에 저장된 개체를 참조 할 방법은 없습니다. 로컬 가변 객체를 저장하는이 고유 한 속성은 우리에게 보이지 않는 내부 구현입니다.
JavaScript의 위의 기본 문법 - 변수 및 식별자에 대한 포괄적 인 이해는 내가 공유하는 모든 내용입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.