JS 고전 면접 문제 기록

3972 단어 JS+ES6
제목 코드:
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 () 익명 함수 함께 놓 기

좋은 웹페이지 즐겨찾기