this,笔面试真题

1.
分析:javascript中的六种数据类型:object(function,array,null),string,number,boolean,undefined,function。

 		 var f = (
            function f (){
                return "1";
            },
            function g (){
                return 1;
            }
        )()
        console.log(typeof(f));

分析:这道题涉及到的知识点是立即执行函数,(1,2)返回的值,typeof的使用。
因为是(1,2)所以返回的是g函数,之后立即执行,f 的值就是1,那么在typeof进行判断的时候,返回的就是number。

		 var x = 11;
        if(function f(){}){
            x += typeof f;
        }
        console.log('x的值是'+ x);

分析:if后面的括号将function f 扎转化为了一个表达式,这个表达式的值肯定不是false类型,所以该函数执行,执行后面的表达式,typeof f ,因为function f 被当做了一个表达式进行执行,所以在执行后就消失,无法再找到,而typeof一个未经声明的变量的值是undefined,所以,最后输出的结果是11undefined。
小知识点总结
在这里插入图片描述
分析:undefined == null undefined><=0全都不成立,null也是一样,全部都不成立,所以他们等于。但是在三等于的面前他们不等于,因为三等于是绝对等于,必须长得一模一样,但是NaN是一个特例,他不等于自己。

 // 判断一个数是不是NaN,自己进行构造函数
         function myIsNaN (num){
            var ret = Number(num);
            ret += "";  //非常巧妙地设计,因为NaN不等于任何数,
            //直接进行永远都是false,将其转化为字符串进行操作
            if(ret == "NaN"){
                return true;
            }else{
                return false;
            }
        }
        // 测试
        console.log(myIsNaN(123));
        console.log(myIsNaN('fbgauigk'));

注意:引用数据类型比较的都是地址。
在这里插入图片描述
在这里插入图片描述
分析:这道题目考查的是预编译。第一个foo未定义,打印出来的是undefined,第二个foo为2,第三个会报错,打印sytaxerrer,hello is not defined.
在这里插入图片描述
深度拷贝
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值