JavaScript는 몇 가지 매우 좋은 아이디어와 몇 가지 매우 나쁜 아이디어를 기반으로 구축되었습니다.
아주 좋은 아이디어에는 함수, 약한 타이핑, 동적 개체 및 표현형 개체 리터럴 표현이 포함됩니다.
나쁜 아이디어에는 전역 변수를 기반으로 하는 프로그래밍 모델이 포함됩니다.
JavaScript 함수는 어휘 범위를 기반으로 하는 최상위 개체입니다. Javascript는 주류가 된 최초의 Lambda 언어였습니다. Java와 비교할 때 JavaScript는 Lisp 및 Scheme과 더 많은 공통점을 가지고 있습니다. C 옷을 입은 Lisp입니다. 이는 JavaScript를 매우 강력한 언어로 만듭니다.
이제 대부분의 프로그래밍 언어에는 강력한 타이핑이 필요합니다. 강력한 타이핑을 통해 컴파일러가 컴파일 타임에 오류를 확인할 수 있다는 아이디어입니다. 오류를 빨리 감지하고 수정할수록 비용이 절감됩니다. Javascript는 약한 유형의 언어이므로 JavaScript 컴파일러는 유형 오류를 감지할 수 없습니다. 강한 타이핑은 테스트 생활을 쉽게 만들어주지 않는 반면, 약한 타이핑은 자유로워집니다. 복잡한 클래스 계층 구조나 강제 모델링을 구축할 필요가 없습니다.
JavaScript는 매우 강력한 리터럴 표현을 제공합니다. 객체는 구성요소 부분을 나열하여 간단하게 생성할 수 있습니다. 이 표현은 제가 널리 사용되는 데이터 교환 형식인 JSON을 만들게 된 영감이었습니다.
JavaScript는 연결을 위해 전역 변수를 사용합니다. 모든 컴파일 단위의 모든 최상위 변수는 전역 개체라는 공통 네임스페이스와 일치합니다. 전역 변수는 악마이고 JavaScript에서는 기본 변수이기 때문에 이것은 나쁜 것입니다.
JavaScript 예약어:
코드는 다음과 같습니다.
abstract boolean break byte case catch char class const continue debugger default delete do double esle enum export extends false final finally float for function goto if implements import in instanceof int interface long native new null package private protected public return short static super switch synchronized this throw throws transient true try typeof var volatile void while with
번호: 64- 비트 부동 소수점 숫자
숫자 리터럴에 지수 부분이 있는 경우 리터럴에 대한 지식은 e 앞 부분에 e 뒤 부분의 거듭제곱을 곱하여 계산됩니다. 따라서 100과 1e2는 같은 숫자입니다.
NaN 값은 정상적인 결과를 생성할 수 없는 연산의 결과를 나타내는 숫자 값입니다. NaN은 자신을 포함한 어떤 값과도 동일하지 않습니다. isNaN(number) 함수를 사용하여 NaN을 감지할 수 있습니다.
Infinity 값은 1.79769313486231570e 308보다 큰 모든 값을 나타냅니다.
JavaScript에는 숫자에 대해 작동하는 일련의 메소드가 포함된 Math 객체가 있습니다. Math.floor(number) 메소드는 숫자를 정수로 변환합니다.
문자 집합:
문자--16비트(유니코드는 16비트 문자 집합입니다.)
JavaScript에는 문자 유형이 없습니다. 문자를 나타내려면 문자 하나만 포함하는 문자열을 생성하면 됩니다.
u 규칙을 사용하면 문자를 나타내는 숫자를 지정할 수 있습니다. "A" === "u0041"
문자열에는 길이 속성이 있습니다. 예를 들어 "seven".length는 5입니다.
문자열은 변경할 수 없습니다. 문자열이 생성되면 절대 변경할 수 없습니다. 그러나 다른 문자열을 연산자와 연결하여 새 문자열을 얻는 것은 쉽습니다. 동일한 문자를 동일한 순서로 포함하는 두 문자열은 동일한 문자열로 간주됩니다.
따라서: 'c' 'a' 't' === 'cat'
JavaScript의 단순 유형에는 숫자, 문자열, 부울 값(true 및 false), null 값 및 정의되지 않음이 포함됩니다. 가치. 다른 모든 값은 객체입니다.
객체는 속성의 컨테이너이며, 각 속성에는 이름과 값이 있습니다.
속성 이름은 빈 문자열을 포함한 모든 문자열일 수 있습니다.
속성 값은 과소정의된 값을 제외한 모든 값이 될 수 있습니다.
JavaScript의 객체에는 클래스가 없습니다. 새로운 속성의 이름과 값에 아무런 제약을 두지 않습니다. 객체는 데이터를 수집하고 관리하는 데 적합합니다. 개체에는 다른 개체가 포함될 수 있으므로 트리나 그래프 구조로 쉽게 표현할 수 있습니다.
JavaScript에는 객체가 다른 객체의 속성을 상속할 수 있는 프로토타입 체인 기능이 포함되어 있습니다. 올바르게 사용하면 객체 초기화 시간과 메모리 소비를 줄일 수 있습니다.
객체 리터럴:
객체 리터럴은 새 객체 값을 생성하는 매우 편리한 방법을 제공합니다. 객체 리터럴은 중괄호 쌍으로 묶인 0개 이상의 이름/값 쌍입니다. 표현식이 허용되는 곳에 객체 리터럴이 나타날 수 있습니다.
var empty_object = {};
var stooge = {
"first-name":"Jerome",
"last-name":"Howard"
}; 이름은 구멍 문자열을 포함한 모든 문자열이 될 수 있습니다. 객체 리터럴에서는 속성 이름이 유효한 JavaScript 식별자이고 예약어가 아닌 경우 속성 이름을 따옴표로 묶을 필요가 없습니다. 따라서 "first-name"을 따옴표로 묶어야 하지만 first_name을 묶을지 여부는 선택 사항입니다. 쉼표는 여러 "이름/값" 쌍을 구분하는 데 사용됩니다.
속성 값은 다른 객체 리터럴을 포함한 모든 표현식에서 얻을 수 있습니다. 객체는 중첩될 수 있습니다.
var flight = { airline:"Oceanic", number:815, departure: { IATA:"SYD", time:"2004-09-22 14:55", city:"Sydney" }, arrival: { IATA:"LAX", time:"2004-09-23 10:42", city:"Los Angeles" } };