js 함수 성명 향상 과 변수 성명 향상
1844 단어 JS
func()
function func () {
}
상례 에서 오 류 를 보고 하지 않 을 것 입 니 다. 바로 '함수 성명 향상' 때 문 입 니 다. 함수 성명 향상 (전체) 을 역할 영역 상단 (함수 성명, 함수 표현 식 포함 하지 않 음) 으로 가 려 고 합 니 다. 실제 향상 후 결 과 는 다음 과 같 습 니 다.
//
function func () {
}
func()
2. 변수 성명 향상 (var 성명 의 변수 만 변수 가 향상 되 고 let, const 가 없 으 며 변수 할당 이 향상 되 지 않 음)
1. console.log(num)
var num = 10
2. console.log(func)
var func = function () {
}
위의 두 예 는 모두 'undefined' 를 인쇄 합 니 다. 변수 성명 이 올 라 가면 변수 성명 을 역할 영역 상단 으로 올 리 지만 성명 부분 만 올 리 고 할당 부분 은 올 리 지 않 습 니 다. 실제 올 라 간 결 과 는 다음 과 같 습 니 다.
1. var num
console.log(num)
num = 10
2. var func
console.log(func)
func = function () {
}
3. 진급 예시 (양자 우선 순위, 국부 와 전역 변수):
①
var func = 10
console.log(func && typeof(func))
function func () {
}
-----
console.log(func && typeof(func))
function func () {
}
var func = 10
위의 두 예 는 각각 'number', 'function' 을 출력 할 것 이다. 그 이 유 는? 함수 성명 향상 은 변수 향상 보다 우선 합 니 다. 함수 성명 은 변수 할당 에 영향 을 받 지만 변수 성명 에 영향 을 받 지 않 습 니 다. 실제 향상 후 결 과 는 다음 과 같 습 니 다.
function func () {
}
var func = 10
console.log(func && typeof(func))
-----
function func () {
}
var func
console.log(func && typeof(func))
func = 10
②
num = 10
function func () {
window.num = 5
console.log(num)
var num
console.log(window.num)
}
func()
상례 에서 각각 'undefined', '5' 를 출력 할 것 입 니 다. 첫 번 째 부분 은 국부 변수 이 고 두 번 째 부분 은 전역 변수 입 니 다. 실제 향상 후 결 과 는 다음 과 같 습 니 다.
function func () {
var num
window.num = 5
console.log(num)
console.log(window.num)
}
var num
num = 10
func()
어서 오 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.