第一篇

第一题
        var product = 'apple';
        var obj = {
            produc:'pen',
            prop:{
                product:'apple pen',
                getProduct:function(){
                    return this.product;
                }
            }
        }
        product='pineapple';
        console.log(obj.prop.getProduct());
        var buy = obj.prop.getProduct;
        console.log(buy());
        ======执行结果为
         =========================apple pen 
         =========================pineapple
        第二题  考察箭头函数
        window.name = 'A'
        const obj = {
            name:'B',
            getName:()=>{
                console.log(this.name);
                console.log(this);
            }
        }
        const fn = obj.getName;
        fn();
        obj.getName();
        fn.call({name:'c'})
        =====================执行结果为 A A A
        第三题  考察arguments对象里是实参值
        function test(a,b){
            console.log(arguments)
            return arguments+b+arguments[2];

        }
        var result = test('a','b','c','d');
        console.log(result)

        第四题
        var a = { x:1 };
        var b = a;
        a = a.x={x:1};
        console.log(a)
        console.log(b)
        // ====================执行结果为
                            // Object{x:1};
                            // Object{x:{x:1}}
        第五题
        var num = 1;
        function myFunc(){
            alert(num);      //undefined
            var num =2;
            alert(num);            // 2
        }
        myFunc();
        第六题
        var v1 = 'global';
        var f1 = function(){
            console.log(v1);
        };
        f1();             //global
        var f2 = function(){
            var v1 = 'local';
            f1();
        };
        f2();            //global
        第七题  ??
        var name = "global";
        var obj = {
            name:"local",
            foo:function(){
                this.name = 'foo';
            }.bind(window)
        };
        var bar = new obj.foo();
        setTimeout(function(){
            console.log(window.name)          //global
        },0)
        console.log(bar.name);            //foo

        var bar3=bar2=bar;
        bar2.name = 'foo2';
        console.log(bar3.name);           //foo2

        第八题  题目有问题
        var objName = " name1";
        function obj(){
            var objName = " name2";
            funciton innerObj(){
                alert(objName);
            }
            innerObj();
        }
        alert(obj());
        第九题
        window.a = 300;
        function fn1(){
            this.a = 100;
            this.b = 200;
            return function(){
                alert(this.a)
            }.call(arguments[0]);
        }
        function fn2(){
            this.a = new fn1();
        }
        var a = new fn1().b;
        var v = new fn1(fn2());
        分别弹出 300 200 [object Object]
        第十题   ??
        function Dog(){}
        Dog.prototype = {
                bark(){
                    console.log(1)
                }
        }
        
        const dog = new Dog()
        dog.bark()
        Dog.prototype = {
                bark(){
                    console.log(2)
                }
        }
        dog.bark()
        Dog.prototype = {
                bark(){
                    console.log(3)
                }
        }
        dog.bark()
        输出三个 1
        第十题
        let num = 10;
        let output = '';
        for(let i=1;i<=num;i++){
            let sqRoot = Math.sqrt(i);
            if(Math.floor(sqRoot)!==sqRoot){
                continue;
            }
            output+=i+'';
        }    
        console.log(output);
        第十一题
        const name ='name';
        const test = `${name}`"${name}"`${name}`;
        console.log(test);
        const name = 'name';
        const test = {name};
        console.log(test)
        第十二题
        "use strict";
        a = 1;
            var a = 2;
            console.log(window.a);   //2
            console.log(a);             //2
        第十三题
        var {a,b,c}={"c":10,"b":9,"a":8}
        console.log(a)        //8
        console.log(b)        //9
        console.log(c)        //10
        第十四题
        console.log(NaN==false)       //false
        console.log(!NaN==false)    //false
        console.log(!!NaN==false)    //true
        console.log(NaN==true)      //false
        console.log(!NaN==true)     //true 
        console.log(!!NaN==true)     //false 
        // 第十五题
        function test(a,b){
            return a+b+arguments[2];
        }
        var result = test("a","b","c","d")
        console.log(result);        //abc
        第十六题
        var a = new Date(2020,3,8)
         console.log(a)
         // Date Wed Apr 08 2020 00:00:00 GMT+0800 (中国标准时间)

 

posted @ 2019-10-13 09:35  princeness  阅读(208)  评论(0编辑  收藏  举报