JS 고전 면접 문제 기록
function Foo() {
getName = function () {
console.log(1)
}
return this
}
Foo.getName = function () {
console.log(2)
}
Foo.prototype.getName = function () {
console.log(3)
}
var getName = function () {
console.log(4)
}
function getName() {
console.log(5)
}
Foo.getName() // 2
getName() // 4
Foo().getName() // 1
getName() // 1
new Foo.getName() // 2
new Foo().getName() // 3
new new Foo().getName() // 3
위의 문제 에 대한 설명:
함수 1: 반환 값 이 있 는 구조 함 수 를 정의 합 니 다.
함수 2: 구조 함수 의 속성 getName 은 익명 함 수 를 가리 키 고 있 습 니 다.
함수 3: 구조 함수 의 원형 에 getName 방법 이 있 습 니 다.
함수 4: 변수 getName 이 익명 함 수 를 가리 키 는 변 수 를 정의 합 니 다.
함수 5: getName 이라는 서명 함 수 를 설명 합 니 다.
익명 함수:
정의: 실제 이름 이 없 는 함수.
익명 함수 만 들 기: 이름 이 있 는 함 수 를 쓰 고 이름 을 지우 고 괄호 를 추가 합 니 다.
//
(function (){
// ,
console.log(" , 。")
})
// , !
(function (){
console.log(" , !")
})()
// ,
(function (str){
console.log(str)
})(" , !")
사용 필드:
1, 귀속 이벤트, 클릭 이벤트.DOM.onclick = function(){}
2. 대상 정의 에 사용 합 니 다. 예 를 들 어:
var obj = {
a: '0',
b: function() {
return ' '
}
}
3. 함수 표현 식, 예 를 들 어:
// fn。
var fn=function(){
return " "
}
//
console.log(fn()) // :“ ”
4. 리 셋 함수, 상용 어 정시 실행 함수, 예 를 들 어:
setInterval(function(){
console.log(" , 1 ")
},1000)
5. 반환 값 으로:
function getName(){
//
return function(){
return " "
}
}
// :
//
console.log(getName()())
//
var name = getName()
console.log(name())
익명 함수 의 역할:
1. 폐쇄 실현.
2. 아 날로 그 블록 급 역할 영역 으로 전역 변 수 를 감소 합 니 다.(여러 사람 이 협력 할 때 명명 문 제 를 피 할 수 있다.)
폐쇄 하 다
패 킷 을 닫 는 것 은 하나의 함수 입 니 다. 이 함 수 는 다른 함수 의 역할 영역 에 접근 할 수 있 는 변수 입 니 다.
function demo1(){
var a = 100
var demo2 = function(){
cosole.log(a)
}
return demo2
}
// demo2 , demo1
패키지 와 성명 승급, 여 기 를 클릭 하 세 요.
자동 실행 함수, 여 기 를 더 클릭 하 십시오.
방식 :작은 괄호 는 실행 할 함 수 를 감 싸 줍 니 다.
//
(function demo1(){
console.log(1);
}()); // 1
//
(function demo2(){
console.log(2);
})(); // 2
방식 :기호.
// : &&
true && function () { console.log("true &&") } ();
// : ||
false || function () { console.log("true ||") } ();
// : ,
0, function () { console.log("0,") } ();
// : (! ~ - + )
!function () { console.log("!"); } (); //"!"
~function () { console.log("~"); } (); //"~"
-function () { console.log("-"); } (); //"-"
+function () { console.log("+"); } (); //"+"
// : =
// i j 。 i ; , j
var i = function () { console.log("output i:"); return 10; } (); // "output i:"
var j = function () { console.log("output j:"); return 99;}
console.log(i); // 10
console.log(j); // ƒ () { console.log("output j:"); return 99;}
//
var i2 = (function () { console.log("output i2:"); return 10; } ()); // "output i2:"
var i3 = (function () { console.log("output i3:"); return 10; }) (); // "output i3:"
// : new
// : new , `}` `()`
new function () {
console.log("new");
} //"new"
new function (a) {
console.log(a);
} ("new"); //"new"
패 킷 을 닫 고 자체 실행 함수 와 함께 놓 을 때 어떻게 분석 해 야 합 니까?여 기 를 클릭 하 세 요.
예: setTimeout 과 fn () 익명 함수 함께 놓 기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JS 판단 수조 네 가지 실현 방법 상세그러면 본고는 주로 몇 가지 판단 방식과 방식 판단의 원리를 바탕으로 문제가 있는지 토론하고자 한다. 예를 들어 html에 여러 개의 iframe 대상이 있으면 instanceof의 검증 결과가 기대에 부합되지 않을...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.