자바스크립트 변수 호이스팅
다음 절차의 결과는 무엇입니까?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
<script type="text/javascript">
var foo = 1;
function bar() {
if (!foo) {
var foo = 10;
}
alert(foo);
}
bar();
</script>
</head>
<body>
</body>
</html>결과 팝업: 10
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
<script type="text/javascript">
var a = 1;
function b() {
a = 10;
return;
function a() {}
}
b();
alert(a);
</script>
</head>
<body>
</body>
</html>결과 팝업: 1
충격이죠? 무슨 일이에요? 이는 낯설고, 위험하고, 혼란스러울 수 있지만 실제로는 매우 유용하고 인상적인 JavaScript 언어 기능인 변수 호이스팅이기도 합니다.
JavaScript 초기화는 승격되지 않습니다.
JavaScript 선언된 변수만 승격되고, 초기화된 변수는 승격되지 않습니다.
1.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = 5; // 初始化 x
var y = 7; // 初始化 y
elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = x + " " + y; // 显示 x 和 y
</script>
</body>
</html>2.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = 5; // 初始化 x
elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = "x 为:" + x + ",y 为:" + y; // 显示 x 和 y
var y = 7; // 初始化 y
</script>
</body>
</html>2의 y는 정의되지 않은 결과를 출력하지만 변수 선언(var y)은 승격되지만 초기화(y = 7)는 승격되지 않기 때문입니다. y 변수는 정의되지 않은 변수입니다.
헤드에서 변수를 선언하세요.
JavaScript 변수 호이스팅은 대부분의 프로그래머에게 알려져 있지 않습니다.
프로그래머가 변수 승격을 잘 이해하지 못하면 그들이 작성하는 프로그램에 문제가 발생하기 쉽습니다.
이러한 문제를 방지하기 위해 일반적으로 각 범위가 시작되기 전에 이러한 변수를 선언합니다. 이는 일반적인 JavaScript 구문 분석 단계이므로 이해하기 쉽습니다.
새로운 파일
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php中文网(php.cn)</title>
</head>
<body>
<p id="demo"></p>
<script>
var x = 5.5; // 初始化 x
elem = document.getElementById("demo"); // 查找元素
elem.innerHTML = "x 为:" + x + ",y 为:" + y; // 显示 x 和 y
var y = 7; // 初始化 y
</script>
</body>
</html>
시사
Clear
- 코스 추천
- 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~
이 강좌를 시청한 학생들도 학습하고 있습니다.
PHP로 사업을 시작하는 방법에 대해 간단히 이야기해 보겠습니다.
웹 프론트 엔드 개발에 대한 빠른 소개
민망한 물건 백과사전 사이트를 모방한 Mini 버전 MVC 프레임워크의 대규모 실용 Tianlongbabu 개발
PHP 실용 개발 시작하기: 빠른 PHP 생성 [중소기업 포럼]
로그인 인증 및 클래식 게시판
컴퓨터 네트워크 지식 수집
빠른 시작 Node.JS 정식 버전
당신을 가장 잘 이해하는 프론트엔드 강좌: HTML5/CSS3/ES6/NPM/Vue/...[원본]
자신만의 PHP MVC 프레임워크 작성(깊이 있는 40개 장/자세한 내용/초보자가 발전하려면 읽어야 함)
















