수색…
통사론
- var foo [= value [, foo2 [, foo3 ... [, fooN]]]];
- let bar [= value [, bar2 [, foo3 ... [, barN]]]];
- const baz = value [, baz2 = value2 [, ... [, bazN = valueN]]];
비고
상수 재 할당
상수는 재 할당 할 수 없습니다.
const foo = "bar";
foo = "hello";
인쇄물:
Uncaught TypeError: Assignment to constant.
상수 수정하기
변수 const
선언하면 해당 값이 새 값으로 대체 되지 않습니다. const
는 객체의 내부 상태에 어떤 제한도 가하지 않는다. 다음 예제에서는 person
할당 된 객체가 수정되었지만 대체 되지 않았기 때문에 const
객체의 속성 값을 변경할 수 있고 새 속성을 추가 할 수 있음을 보여줍니다.
const person = {
name: "John"
};
console.log('The name of the person is', person.name);
person.name = "Steve";
console.log('The name of the person is', person.name);
person.surname = "Fox";
console.log('The name of the person is', person.name, 'and the surname is', person.surname);
결과:
The name of the person is John
The name of the person is Steve
The name of the person is Steve and the surname is Fox
이 예제에서는 person
이라는 상수 오브젝트를 생성하고 person.name
특성을 재 할당하고 새로운 person.surname
특성을 작성했습니다.
상수 선언 및 초기화
const
키워드를 사용하여 상수를 초기화 할 수 있습니다.
const foo = 100;
const bar = false;
const person = { name: "John" };
const fun = function () = { /* ... */ };
const arrowFun = () => /* ... */ ;
중대한
같은 문장에서 상수를 선언하고 초기화해야합니다.
선언
자바 스크립트에서 변수를 선언하는 네 가지 기본 방법이 있습니다 : var
, let
또는 const
키워드를 사용하거나 전혀 키워드없이 ( "맨"선언). 사용 된 메소드는 변수의 결과 범위 를 결정하거나 const
의 경우 재 할당 가능성을 결정합니다.
-
var
키워드는 함수 범위 변수를 만듭니다. -
let
키워드는 블록 범위 변수를 만듭니다. -
const
키워드는 재 할당 할 수없는 블록 범위 변수를 만듭니다. - bare 선언은 전역 변수를 만듭니다.
var a = 'foo'; // Function-scope
let b = 'foo'; // Block-scope
const c = 'foo'; // Block-scope & immutable reference
동시에 초기화하지 않고 상수를 선언 할 수는 없다는 점에 유의하십시오.
const foo; // "Uncaught SyntaxError: Missing initializer in const declaration"
키워드가없는 변수 선언의 예는 기술적 인 이유로 위에 포함되어 있지 않습니다. 예를 보려면 계속 읽으십시오.
데이터 유형
자바 스크립트 변수는 숫자, 문자열, 배열, 객체 등 많은 데이터 유형을 보유 할 수 있습니다.
// Number
var length = 16;
// String
var message = "Hello, World!";
// Array
var carNames = ['Chevrolet', 'Nissan', 'BMW'];
// Object
var person = {
firstName: "John",
lastName: "Doe"
};
JavaScript에는 동적 유형이 있습니다. 즉, 동일한 변수를 다른 유형으로 사용할 수 있습니다.
var a; // a is undefined
var a = 5; // a is a Number
var a = "John"; // a is a String
정의되지 않음
값이없는 선언 된 변수는 값이 undefined
var a;
console.log(a); // logs: undefined
선언되지 않은 변수의 값을 검색하려고하면 ReferenceError가됩니다. 그러나 선언되지 않은 변수와 단위화된 변수의 유형은 모두 "정의되지 않음"입니다.
var a;
console.log(typeof a === "undefined"); // logs: true
console.log(typeof variableDoesNotExist === "undefined"); // logs: true
할당
이전에 선언 된 변수에 값을 할당하려면 대입 연산자 =
사용하십시오.
a = 6;
b = "Foo";
독립적 인 선언 및 지정에 대한 대안으로 한 단계에서 두 단계를 모두 수행 할 수 있습니다.
var a = 6;
let b = "Foo";
글로벌 변수가 키워드없이 선언 될 수있는 구문은 다음과 같습니다. 즉각적인 할당없이 맨손으로 변수를 선언하는 경우 해석기는 전역 선언을 구별 할 수 없습니다 a;
변수들에 대한 참조로부터 a;
.
c = 5;
c = "Now the value is a String.";
myNewGlobal; // ReferenceError
그러나 위의 구문은 일반적으로 권장되지 않으며 엄격 모드를 준수하지 않습니다. 프로그래머가 실수로 전역 네임 스페이스에 변수를 작성하지 않고 자신의 명령문에서 let
또는 var
키워드를 우연히 삭제하는 경우를 방지하기위한 것입니다. 이것은 전역 네임 스페이스와 라이브러리와의 충돌 및 스크립트의 적절한 기능을 오염시킬 수 있습니다. 따라서 전역 변수는 창 개체의 컨텍스트에서 var
키워드를 사용하여 선언하고 초기화해야합니다. 따라서 의도가 명시 적으로 설명됩니다.
또한 각 선언 (및 선택적 값 할당)을 쉼표로 분리하여 변수를 한 번에 여러 개 선언 할 수 있습니다. 이 구문을 사용하면 var 및 let 키워드는 각 명령문의 시작 부분에 한 번만 사용해야합니다.
globalA = "1", globalB = "2";
let x, y = 5;
var person = 'John Doe',
foo,
age = 14,
date = new Date();
앞의 코드 조각에서 선언 및 대입 표현식이 발생하는 순서 ( var a, b, c = 2, d;
)는 중요하지 않습니다. 이 둘을 자유롭게 섞을 수 있습니다.
함수 선언은 효과적으로 변수도 생성합니다.
수학 연산과 과제
증가분
var a = 9,
b = 3;
b += a;
b
는 이제 12가 될 것입니다.
이것은 기능적으로
b = b + a;
에 의한 감소
var a = 9,
b = 3;
b -= a;
b
가 6이됩니다.
이것은 기능적으로
b = b - a;
곱하기 by
var a = 5,
b = 3;
b *= a;
b
가 15가됩니다.
이것은 기능적으로
b = b * a;
으로 나누기
var a = 3,
b = 15;
b /= a;
b
가 5가됩니다.
이것은 기능적으로
b = b / a;
권력을 키우다
var a = 3,
b = 15;
b **= a;
b
가 3375가됩니다.
이것은 기능적으로
b = b ** a;