首页 > 编程语言 > 详细

【JavaScript】JavaScript面试题1

时间:2019-08-16 19:49:50      阅读:63      评论:0      收藏:0      [点我收藏+]

JavaScript面试题1

作用域:

题目1:

        var v = 123;
        function foo() {
            var v = 456;
            function inner() {
                console.log(v)
            }
            return inner
        }

        result = foo();     
        console.log(result())   

结果:

技术分享图片
        var v = 123;
        function foo() {
            var v = 456;
            function inner() {
                console.log(v)
            }
            return inner
        }

        result = foo();     //456
        console.log(result())   //undefined
执行结果

this的区别:

题目1:

        Name = ‘root‘;
        Age = 18;
        //function Foo(){}   函数名大写时一般是类
        function Foo(name,age) {
            this.Name=name;
            this.Age = age;
            this.Func = function () {
                console.log(‘---‘,this.Name,this.Age);  
                (function () {
                    console.log(this.Name,this.Age);    
                })()
            }
        }
        obj = new Foo("Alex",666);
        obj.Func();  

结果:

技术分享图片
        Name = ‘root‘;
        Age = 18;
        //function Foo 函数名大写时一般是类
        function Foo(name,age) {
            this.Name=name;
            this.Age = age;
            this.Func = function () {
                console.log(‘---‘,this.Name,this.Age);  //Alex  666
                (function () {
                    console.log(this.Name,this.Age);    //root  18
                })()
            }
        }
        obj = new Foo("Alex",666);
        obj.Func();
执行结果

题目2:

        Name = ‘alex‘;
        obj = {
            Name: ‘root‘,
            Age: 18,
            Func: function () {
                console.log(this);   

                console.log(this.Name);  
                var that = this;

                function inner() {
                    console.log(this.Name);      
                    console.log(that.Name);      
                }
                inner();

                // 自执行函数
                (function () {
                    console.log(this.Name)  
                })();
            }
        };

        obj.Func()    

结果:

技术分享图片
Name = ‘alex‘;
        obj = {
            Name: ‘root‘,
            Age: 18,
            Func: function () {
                console.log(this);   //this==obj

                console.log(this.Name);  //root
                var that = this;

                function inner() {
                    //this = window
                    console.log(this.Name);      //alex
                    console.log(that.Name);      //root
                }
                inner();

                // 自执行函数
                (function () {
                    console.log(this.Name)  //alex
                })();
            }
        };

        obj.Func()
执行结果

 

【JavaScript】JavaScript面试题1

原文:https://www.cnblogs.com/XJT2018/p/11365514.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!