전단 고전 면접문제-js기초고찰

10081 단어 프런트 엔드
  • hoisting(변수 승급) 변수 승급: 함수 성명과 변수 성명은 항상 해석기에 의해 조용히 방법체의 맨 위로 승급된다
  • 
    <html>
    <head>
        <title>hoistingtitle>
    head>
    <body>
        <script type="text/javascript">
            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
        script>
    body>
    html>

    미리 해석된 코드의 순서
    
    <html>
    <head>
        <title>hoistingtitle>
    head>
    <body>
        <script type="text/javascript">
            // , 。
            var getName;
            function getName(){console.log(5);};
            function Foo(){
                getName = function() {console.log(1);};
                return this;
            }
            Foo.getName = function (){ console.log(2);};
            Foo.prototype.getName = function(){console.log(3);};
            getName = function(){console.log(4);};
    
            Foo.getName();
            getName();
        script>
    body>
    html>

    2. 로컬 도메인
     
    <html>
    <head>
        <title> title>
    head>
    <body>
        <script type="text/javascript">
            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 , var, 。
            Foo().getName();  //1
            // 1,getName() window.getName(),getName this.getName()
            getName();        //1 
        script>
    body>
    html>

    3. 매개 변수 우선 순위
    
    <html>
    <head>
        <title> title>
    head>
    <body>
        <script type="text/javascript">
            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);};
    
            // new,foo.getName 2
            //new function (){console.log(1);};
            new Foo.getName();  //2
    
            //new Foo() , getName 3
            new Foo().getName();  //3
    
            //. new new 
            new new Foo().getName();  //3
        script>
    body>
    html>

    좋은 웹페이지 즐겨찾기