아저씨 읽 고 자 바스 크 립 트 깊이 이해 하기 (1)
9111 단어 JavaScript
주의:
var 를 통 해 만 든 전역 변수 (함수 이외 의 프로그램 에서 만 든 것) 는 삭제 할 수 없습니다.
var 가 만 들 지 않 은 암시 적 전역 변 수 는 삭제 할 수 있 습 니 다.
var a = (function(){return this;}()); //return globa object
a == window //return true
m = 1; // , window
a.m //return 1
delete m;
a.m //return undefined
특례: eval ("var t = 1"), 이러한 방식 의 성명 은 문맥 에 따라 현재 역할 도 메 인 변 수 를 표시 하고 delete 에서 삭제 할 수 있 습 니 다.eval 추천 하지 않 음
2. 단일 var 의 응용 (쉼표 로 분할)
var a = 1,
b = [],
str = 'daxian',
obj = {};
3. javascript 의 예비 해석 var 산포 문제 (Hoisting: A Problem with Scattered vars)
변 수 를 사용 하고 얼마 지나 지 않 아 함수 에서 다시 설명 하면 논리 적 오류 가 발생 할 수 있 습 니 다.자바 스 크 립 트 에 대해 서 는 변 수 를 같은 역할 영역 (같은 함수) 에 있 으 면 모두 설명 으로 여 겨 집 니 다. var 성명 전에 사용 하 더 라 도.아래 의 이 예 를 보 세 요.
x = 'globa' //
function func1(){
console.log(x)
}
func1(); //return globa;
function func(){
console.log(x) //return undefined
var x = 'local';
console.log(x) //return local;
}
func2()
DOM 대상 가 져 오기 삽입:
document.getElementById
document.getElementsByName
document.getElementsByTagName
document.getElementsByClassName
// DOM
document.images //
document.links //
document.forms //
document.forms[0].element //
주의:
for-in
순환 은 비 배열 대상 의 옮 겨 다 니 는 데 사용 되 어야 하 며, for-in
순환 을 사용 하 는 것 도 '매 거 진' 이 라 고 불 린 다.기술적 으로 는 순환 배열
for-in
을 사용 할 수 있 지만 추천 하지 않 습 니 다.배열 대상 이 사용자 정의 기능 이 강화 되면 논리 적 오류 가 발생 할 수 있 기 때문이다.또한, for - in 에 서 는 속성 목록 의 순서 (서열) 를 보장 할 수 없습니다.따라서 배열 은 정상 적 인 for 순환 을 사용 하고 대상 은 for - in 순환 을 사용 하 는 것 이 좋 습 니 다.4. hasOwnProperty 원형 필터 링 방법
var man = {name:'jzliu',age:21,birth:'2012-08-01'};
if(typeof Object.prototype.clone === 'undefined'){
Object.prototype.clone = function(){};
}
for(var i in man){conosle.log(i+":"+man[i])}
return
name:jzliu
age:21
birth:2012-08-01
clone:function (){}
for(var i in man){
if(man.hasOwnProperty(i)){ //
conosle.log(i+":"+man[i])
}
}
return
name:jzliu
age:21
birth:2012-08-01
g
for(var i in man){
if(Object.prototype.hasOwnProperty.call(man,i)){
conosle.log(i+":"+man[i])
}
}
return
name:jzliu
age:21
birth:2012-08-01
5.setTimeout(function(){Fun(a,b,c);},1000)
6.return {'name':'xxxxx'}
7. 함수 성명 과 함수 표현 식 의 차이 (성명 은 먼저 해 석 됩 니 다)
함수 설명: function funName (param,...) {}
함수 식: function funName [선택 가능] () {}
따라서 함수 이름 을 밝 히 지 않 으 면 표현 식 이 분명 합 니 다. 함수 이름 을 밝 혔 다 면 함수 성명 인지 함수 표현 식 인지 어떻게 판단 합 니까?ECMAScript 는 상하 문 을 통 해 구 분 됩 니 다. function foo () {} 이 할당 식 의 일부분 이 라면 함수 표현 식 입 니 다. function foo () {} 이 함수 에 포함 되 거나 프로그램의 맨 위 에 있 으 면 함수 성명 입 니 다.
function foo(){} // ,
var bar = function foo(){}; // ,
new function bar(){}; // , new
(function(){
function bar(){} // ,
})();
또 하나의 함수 표현 식 은 흔 하지 않 습 니 다. 괄호 로 묶 인 (function foo () {} 입 니 다. 그 가 표현 식 인 이 유 는 괄호 () 가 그룹 연산 자 이기 때 문 입 니 다. 그 내 부 는 표현 식 만 포함 할 수 있 습 니 다. 우 리 는 몇 가지 예 를 보 겠 습 니 다.
function foo(){} //
(function foo(){}); // :
표현 식 과 성명 은 매우 미묘 한 차이 가 있 습 니 다. 우선, 함수 성명 은 모든 표현 식 이 해석 되 고 값 을 구하 기 전에 먼저 해석 되 고 값 을 구 합 니 다. 코드 의 마지막 줄 에 있 더 라 도 같은 역할 영역 에서 첫 번 째 표현 식 이 해석 되 기 전에 값 을 구 합 니 다.
if (true) {
function foo(){ return 1; }
}
else {
function foo(){ return 2; }
}
foo(); // 1
// : foo
// , foo , 2, 1
8. 개인 적 인 방법 과 변 수 는 var 로 설명 합 니 다.
9.(function(){xxxx}())
10. 원형 체인 계승 실현
11. 폐쇄
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.