Javascript 표준 참조 튜 토리 얼 학습 기록

튜 토리 얼:http://javascript.ruanyifeng.com/
 
기본 문법 - 함수
1. 함수 이름 의 향상
JavaScript 엔진 은 함수 이름 을 같은 변수 이름 으로 간주 하고 function 명령 으로 함 수 를 설명 할 때 전체 함수 가 코드 머리 로 향 상 됩 니 다.아래 의 코드 는 틀 리 지 않 을 것 이다.
f();
function f(){}

그러나 할당 문 정의 함 수 를 사용 하면 자바 스 크 립 트 가 잘못 보고 합 니 다.
f();
var f = function (){}; // TypeError: undefined is not a function

function 명령 과 할당 문 구 를 동시에 사용 하여 같은 함 수 를 설명 하면 마지막 으로 할당 문 구 를 정의 합 니 다.
2. 매개 변수 전달 방식
JavaScript 의 함수 매개 변수 전달 방식 은 전송 값 전달 (passes by value) 이지 만 복합 유형의 변수 에 있어 속성 값 은 주소 에 따라 전달 (pass by reference) 된다. 즉, 속성 값 은 주 소 를 통 해 읽 힌 다.따라서 함수 내 에서 복합 유형 변수의 속성 값 을 수정 하면 함수 외부 에 영향 을 줄 수 있 습 니 다. 
간단하게 이해 하면 함수 체 내 에서 전 달 된 복합 유형 변 수 를 전체적으로 수정 합 니 다. 예 를 들 어 배열, 대상 은 함수 외부 에 영향 을 주지 않 지만 속성 값 을 수정 하면 함수 외부 에 갑 니 다.
var o = [1,2,3];

function f1(o){
    o = [2,3,4];
}
f1(o);
console.log(o); // [1,2,3]

function f2(o){
    o[2] = 4;
}
f2(o);
console.log(o); // [1,2,4]

3. eval 명령
eval 은 자신의 역할 영역 이 없 으 며 현재 역할 영역 에서 실 행 됩 니 다.
var a = 1;
eval('a = 2');

ECMAScript 5 는 eval 의 사용 을 두 가지 상황 으로 나 누 는데 위 와 같은 호출 을 '직접 사용' 이 라 고 합 니 다.다른 상황 은 eval 이 직접 호출 하 는 것 이 아니 라 '간접 호출' 이다. 이때 eval 의 역할 영역 은 항상 전체적인 역할 영역 이다.
var a = 1;

function f(){
    var a = 2;
    var e = eval;
    e('console.log(a)');
}

f(); // 1

 
기본 문법 - 대상
1. 변수 성명 여부 확인
if(window.a) {...} //    
if(window['a']) {...} //    

이 두 가지 쓰기 에는 구멍 이 있 습 니 다. a 속성 이 빈 문자열 (또는 다른 불 값 이 false 인 경우) 이 라면 변수 가 성명 하 는 지 확인 하 는 역할 을 할 수 없습니다.정확 한 표기 법 은 in 연산 자 를 사용 하 는 것 이다.
if('a' in window) {...}

2 、 모든 속성 보기
대상 자체 의 모든 속성 을 보고 Object. keys 방법 을 사용 할 수 있 습 니 다.
var o = {
  key1: 1,
  key2: 2
};

Object.keys(o);  // ["key1", "key2"]

3. with 구문
with 문 구 는 소수의 유용 한 장소 중 하나 로 템 플 릿 변 수 를 교체 하 는 것 입 니 다.
var str = 'Hello <%= name %>!';

위 코드 는 템 플 릿 문자열 입 니 다. 변 수 를 바 꾸 기 위해 서 는 세 부분 'Hello', name, '!' 로 분해 할 수 있 습 니 다.그리고 템 플 릿 변 수 를 교체 합 니 다.
var o = {
  name: 'Alice'
};

var p = [];
var tmpl = '';

with(o){
  p.push('Hello ', name, '!');
};

p.join('') // "Hello Alice!"

위의 코드 에서 with 블록 내부 에서 템 플 릿 변수 name 은 대상 o 의 속성 으로 바 꿀 수 있 고 p 는 전역 변수 입 니 다.사실 이것 이 많은 템 플 릿 엔진 의 실현 원리 다.
 
표준 라 이브 러 리 - 날짜 대상
1、Date.now()
now 방법 은 1970 년 1 월 1 일 00: 00: 00 UTC 의 밀리초 수 (Unix 시간 스탬프 곱 하기 1000) 를 되 돌려 줍 니 다.
더 정확 한 시간 이 필요 하 다 면 window. performance. now () 를 사용 할 수 있 습 니 다.명령 이 실 행 될 때 까지 페이지 를 불 러 오 는 시간 을 제공 합 니 다. 단 위 는 부동 소수점 형식의 밀리초 입 니 다.
 
대상 지향 프로 그래 밍 - 개요
1. apply 방법
배열 의 빈 요 소 를 undefined 로 변경 합 니 다.
Array.apply(null, ["a",,"b"])
// [ 'a', undefined, 'b' ]

빈 요소 와 undefined 의 차 이 는 배열 의 foreach 방법 이 빈 요 소 를 뛰 어 넘 지만 undefined 를 뛰 어 넘 지 않 는 다 는 것 이다.따라서 내부 요 소 를 옮 겨 다 닐 때 서로 다른 결 과 를 얻 을 수 있다.

좋은 웹페이지 즐겨찾기