Javascript 표준 참조 튜 토리 얼 학습 기록
기본 문법 - 함수
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 를 뛰 어 넘 지 않 는 다 는 것 이다.따라서 내부 요 소 를 옮 겨 다 닐 때 서로 다른 결 과 를 얻 을 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.