함수와 작용역 3

5256 단어
1. 함수 성명과 함수 표현식은 어떤 차이가 있는가
함수 성명 function 키워드를 사용하면 함수 성명이 호출된 앞에 놓을 필요가 없음을 설명할 수 있습니다. 함수 성명은 함수 이름이 있어야 합니다.
// 
  function sayHello(){
    console.log('hello')
  }
  // 
  sayHello()

함수 표현식 성명은 호출된 앞뒤 두 함수의 이름이 같을 수도 있고 같지 않을 수도 있습니다. function 뒤에 있는 이 이름(sayHello)은 생략할 수 있습니다.
 var sayHello = function sayHello(){
    console.log('hello');
  }
  sayHello()

세 번째 성명 함수 방식은 구축 함수 var sayHello=new Function("console.log("hello world");")을 사용합니다.
2. 변수의 성명 전치는 무엇입니까?함수의 성명 전치가 무엇입니까
변수의 성명 전치: 같은 작용역 아래에서 모든 변수를 시작 성명 함수의 성명 전치에 놓는다. 변수 성명 전치와 같은 의미는 함수 작용역 아래에 있을 뿐, 시작 전에 변수를 성명한다.
3.arguments가 뭐예요?
함수 내부에서arguments 대상을 사용하여 이 함수의 모든 전송 매개 변수를 얻을 수 있습니다. 함수 매개 변수를 정의했지만 상응하는 매개 변수 값이 없으면 전달된 함수 매개 변수는 자동으로 undefined 값을 부여합니다. 예를 들어 functionprintPersonInfo(name,age,sex) {console.log(name);console.log(age);console.log(sex);console.log(console.log(arguments);}
4. 함수의'재부팅'은 어떻게 실현되는가
JavaScript는 강형 언어처럼 함수 재부팅을 할 수 없습니다. 같은 함수 이름의 두 함수를 정의한 다음 함수는 이전 함수를 덮어씁니다. 즉, 같은 함수는 덮어쓰지만, 함수 바늘에서 서로 다른 매개 변수를 호출하여 해당하는 논리 function printPeopleInfo(name,age,sex) {if(name) {console.log(name);}if(age){ console.log(age); } if(sex){ console.log(sex); } } printPeopleInfo('Byron', 26); printPeopleInfo('Byron', 26, 'male');
5. 함수 표현식을 즉시 실행하는 것은 무엇입니까?무슨 작용이 있느냐
즉각 실행 함수는 익명 함수를 성명하고 함수를 정의하면 즉시 실행하는 함수입니다.그것의 역할은 역할 영역을 격리하는 것이다. 전역 변수가 생기지 않는다. 쓰기: (function fn1 () {}) ().
6. 제발 n!,귀속으로 실현하다
function f(n){
if(n>1){
return n*f(n-1);}
else if(n==1){
return 1;}
else{
return 0;}
}

7. 다음 코드는 무엇을 출력합니까?
function getInfo(name, age, sex){
    console.log('name:',name);
    console.log('age:', age);
    console.log('sex:', sex);
    console.log(arguments);
    arguments[0] = 'valley';
    console.log('name', name);
    }
getInfo(' ', 2, ' ');
getInfo(' ', 3);
getInfo(' ');
/* 
name: 
age:2
sex: 
[" ", 2, " "]
name valley */

/*name: 
age:3
sex:undefined
[" ", 3 ]
name valley */

/*name: 
age:undefined
sex:undefined
[" "]
name valley */
  • 함수를 써서 매개 변수의 제곱과?
  •   function sumOfSquares(){
        var sum=0;
        for(i=0;i
  • 다음 코드의 출력은?왜
  • console.log(a);
    var a = 1;
    console.log(b);
    
    /*
     :
    undefined
    Uncaught ReferenceError: b is not defined
     
    var a;
    console.log(a);
    a = 1;
    console.log(b);//b , 
     */
    
  • 다음 코드의 출력은?왜
  •     sayName('world');
        sayAge(10);
        function sayName(name){
            console.log('hello ', name);
        }
        var sayAge = function(age){
            console.log(age);
        };
    /* 
    hello world
    Uncaught TypeError: sayAge is not a function*/
    function , , ,
    var sayAge = function(age) , , */
    
  • 다음 코드는 무엇을 출력합니까?역할 영역 체인 찾기 프로세스 위조 코드 쓰기
  • var x = 10
    bar() 
    function foo() {
      console.log(x)
    }
    function bar(){
      var x = 30
      foo()
    }
    
    /*globalContext = {
      AO: {
        x: 10
        foo: function
        bar: function
      },
      Scope: null
    }
      foo    
    foo.[[scope]] = globalContext.AO
      bar    
    bar.[[scope]] = globalContext.AO
     :10 */
    
  • 다음 코드는 무엇을 출력합니까?역할 영역 체인 찾기 프로세스 위조 코드 쓰기
  • var x = 10;
    bar() 
    function bar(){
      var x = 30;
      function foo(){
        console.log(x) 
      }
      foo();
    }
    
    /*globalContext = {
      AO: {
        x: 10
        bar: function
      },
      Scope: null
    }
      bar    
    bar.[[scope]] = globalContext.AO
    
    barContext = {
      AO: {
        x: 30,
        foo: function
      },
      Scope: bar.[[scope]] //globalContext.AO
    }
      bar   foo    
    foo.[[scope]] = barContext.AO
     :30*/    
    
  • 다음 코드는 무엇을 출력합니까?역할 체인의 검색 프로세스 위조 코드 쓰기
  • var x = 10;
    bar() 
    function bar(){
      var x = 30;
      (function (){
        console.log(x)
      })()
    }
    
    /*globalContext = {
      AO: {
        x: 10
        bar: function
      },
      Scope: null
    }
      bar    
    bar.[[scope]] = globalContext.AO
    
    barContext = {
      AO: {
        x: 30,
        (function (){console.log(x)}): function
      },
      Scope: bar.[[scope]] //globalContext.AO
    }
      bar   foo    
    (function (){console.log(x)}).[[scope]] = barContext.AO
     :30*/    
    
  • 다음 코드는 무엇을 출력합니까?역할 영역 체인 찾기 프로세스 위조 코드 쓰기
  • var a = 1;
    function fn(){
      console.log(a)   //undefiend
      var a = 5
      console.log(a)  //5
      a++
      var a
      fn3()             //1
      fn2()             //6
      console.log(a)  //20
      function fn2(){
        console.log(a)
        a = 20
      }
    }
    function fn3(){
      console.log(a)
      a = 200
    }
    fn()
    console.log(a)  //200 
    
    /*globalContext = {
      AO: {
        a: 1
        fn: function
        fn3: function
      },
      Scope: null
    }
      fn    
    fn.[[scope]] = globalContext.AO
      fn3    
    fn3.[[scope]] = globalContext.AO
    
    
    fn.Context = {
      AO: {
        a: undefiend
        fn2: function
      },
      Scope: fn.[[scope]] //globalContext.AO
    }
     fn   fn2   
    fn2.[[scope]] = fnContext.AO*/
    

    좋은 웹페이지 즐겨찾기