서평-YDKJS 입문 및 진급
제1장: 프로그래밍 시작
코드
코드는 컴퓨터가 어떤 임무를 수행해야 하는지를 알려주는 특수 명령이다.일반적으로 텍스트 파일에 저장되며 브라우저의 개발자 콘솔에 코드를 직접 입력할 수도 있습니다.
문장
단어, 숫자, 그리고 구체적인 임무를 수행하는 조작부호가 하나의 문장을 구성한다.문장에는 변수, 글자량, 조작부호가 포함되어 있다.예를 들어
a = b * 2;
는 하나의 문장이고 a, b는 변수이며 2는 글자의 양이고 =, *는 조작부호이다.표현식
하나의 표현식은 인용으로 변수나 값을 가리키거나 조작부호로 조합된 변수와 값을 가리킨다.
2 ->
b ->
b * 2 ->
a = b * 2 ->
alert(a) ->
프로그램 실행
JavaScript 엔진은 실제로 컴파일된 코드를 즉시 위에서 아래로 실행합니다.
제2장: JavaScript에 들어가기
값 및 유형
내장 형식은string,number,boolean,null,undefined,symbol,object입니다.일반적으로 우리는 typeof로 유형을 판단할 수 있지만, JS에 하나의 버그가 존재한다. 바로 typeof null이 object이고, 이것은 Object를 통과할 수 있다.prototype.toString.call (null) 로 판단합니다.
값의 비교
true 및 false
", 0,-0,NaN,null,undefined,false는 Boolean을 false로 전환하고 나머지는true입니다.
등가성
부정확한 설명: ==검사값의 등가성, ===검사값과 유형 양자의 등가성.합리적인 설명: ==강제전환을 허용하는 조건에서 값의 등가성을 검사하고, ===는 강제전환을 허용하지 않는 조건에서 값의 등가성을 검사한다.
this 식별자
function foo() {
console.log( this.bar );
}
var bar = "global";
var obj1 = {
bar: "obj1",
foo: foo
};
var obj2 = {
bar: "obj2"
};
// --------
foo(); // "global"
obj1.foo(); // "obj1"
foo.call( obj2 ); // "obj2"
new foo(); // undefined
원형
그것의 가장 간단한 방법은
Object.create(..)
라고 불리는 내장 도구를 사용하는 것이다.var foo = {
a: 42
};
// `bar` `foo`
var bar = Object.create( foo );
bar.b = "hello world";
bar.b; // "hello world"
bar.a; // 42
낡은 것과 새 것
새로운 JavaScript 특성을 기존 버전의 브라우저에 '가져다 줄 수 있는 두 가지 주요 기술이 있다. 그것은 바로 메우기와 번역이다.
메우다
ES6는 Number라고 정의했습니다.isNaN(..)NaN 값을 확인하는 정확한 방법을 제공하는 툴
if (!Number.isNaN) {
Number.isNaN = function isNaN(x) {
return x !== x;
};
}
ES5-Shim 및 ES6-Shim
번역하다
ES6에는 기본값이라는 새로운 특성이 추가되었습니다.
function foo(a = 2) {
console.log( a );
}
foo(); // 2
foo( 42 ); // 42
번역기는 그것을 구판 문법으로 변환할 것이다
function foo() {
var a = arguments[0] !== (void 0) ? arguments[0] : 2;
console.log( a );
}
우수 번역기 예: Babel 및 Traceur
제3장: YDKJS 입장
작용역과 폐쇄
JS는 해석형 언어이기 때문에 컴파일되지 않습니다. 이것은 잘못된 것입니다.JS 엔진이 당신의 코드가 실행되기 전 (때로는 실행 중!)그것을 편역하다.패킷을 닫는 중요한 응용 프로그램 중 하나는 모듈 모델이다.
this와 대상 원형
가장 큰 오류 중 하나는this 키워드가 나타나는 함수를 가리킨다고 생각하는 것입니다. 이것은 잘못된 것입니다.this 키워드는 함수가 어떻게 실행되는지에 따라 동적으로 귀속됩니다.
유형과 문법
강제 전환을 이해하는 것이지 그것의 존재를 막는 것이 아니다.
비동기식 및 성능
Prmise는 시간과 무관한'미래치'의 포장으로 이 미래치들을 추리하고 조합할 수 있으며 준비가 되었는지 신경 쓸 필요가 없다.또한 신뢰할 수 있고 조립할 수 있는promise 메커니즘을 따라 리셋을 전달함으로써 IoC 신뢰 문제를 효과적으로 해결했다.Generator는 JS 함수에 새로운 실행 모드를 도입했습니다. Generator는 yield점에서 잠시 후 다른 방식으로 계속할 수 있습니다.이러한'일시 정지-계속'능력은 일반 관리자가 막후에서 다른 단계로 처리되어 동기화되어 보이고 순서대로 실행되는 코드를 가능하게 한다.이렇게 하면, 우리는 리셋의 비선형, 비 로컬 점프의 곤혹을 해결할 수 있고, 따라서 우리의 비동기 코드는 더욱 추리하기 쉬운 동기 코드로 보인다.
ES6와 미래
읽을 만한 많은 감동적인 ES6 특성: 구조, 파라미터 기본값,symbol, 간결한 방식, 계산 속성, 화살표 함수, 블록 작용역,promise,generator,iterator,모듈,에이전트,weakmap 등.JavaScript의 미래는 밝습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.