>  기사  >  웹 프론트엔드  >  js-노트

js-노트

不言
不言원래의
2018-04-26 14:31:201258검색

이 기사는 관심 있는 친구들이 볼 수 있도록 공유합니다.

1. JS는 한 번만 사전 컴파일됩니다.

var a; 
if (!(“a” in window)) { 
   a = 1; 
}

alert(a) // 이런 식으로 제목은 의미는 매우 명확합니다. 먼저 a를 선언한 다음 a가 존재하는지 확인합니다. 존재하지 않으면 1을 할당합니다. a는 창에 항상 존재하므로 결과는 실행되지 않습니다. 정의되지 않았습니다.


2. 함수 선언은 변수 선언을 덮어쓰지만 변수 할당은 덮어쓰지 않습니다. 밤을 보자

function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”

가능한 한 빨리 변수 선언이 아래에 정의되어 있지만 변수 값은 여전히 ​​함수입니다. 이 경우에는

함수 선언 우선 순위가 변수 선언 우선 순위보다 높지만 변수 값을 할당하면 결과가 완전히 다릅니다.


function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”

값 할당 후 변수 할당 초기화가 함수를 덮어씁니다. 선언.


얕은 복사는 기본 유형의 데이터만 복사하므로 해당 메모리 주소만 복사되므로 메타 개체가 변조될 가능성이 있습니다.

function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}

1. -compiled;

var a; 
if (!(“a” in window)) { 
   a = 1; 
} 
alert(a); // undefined

이런 식으로 질문의 의미는 매우 명확합니다. 먼저 a를 선언한 다음 a가 존재하지 않는 경우 1로 할당합니다.

a는 항상 창에 존재하며 이 할당문은 실행되지 않으므로 결과가 정의되지 않습니다.



2. 함수 선언은 변수 선언을 덮어쓰지만 변수 할당은 덮어쓰지 않습니다. 밤을 보자

function value(){ 
   return 1; 
} 
alert(typeof value);    //”function”

가능한 한 빨리 변수 선언이 아래에 정의되어 있지만 변수 값은 여전히 ​​함수입니다. 이 경우에는

함수 선언 우선 순위가 변수 선언 우선 순위보다 높지만 변수 값을 할당하면 결과가 완전히 다릅니다.


function value(){ 
   return 1; 
} 
var value = 1; 
alert(typeof value);    //”number”

값을 할당한 후 변수 할당 초기화가 변수 할당 초기화를 재정의합니다. 함수 선언.



얕은 복사는 기본 유형의 데이터만 복사하므로 배열이나 객체의 경우 해당 메모리 주소만 복사되므로 메타 객체가 변조될 가능성이 있습니다.

function copy(p) { 
   let c = {}; 
   for(let i in p) { 
       c[i] = p[i]; 
   } 
   return c; 
}

관련 권장 사항:

js를 작성하는 또 다른 방법 Share

js를 사용한 퍼지 쿼리 구현에 대한 자세한 설명

위 내용은 js-노트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.