超坑的前端笔试题01

超坑的前端笔试题

1.给基本数据类型添加属性
js中数据类型包含基本数据类型和引用类型,基本类型包括:
string、null、undefined、number、boolean。
引用类型即是对象比如:array 、function以及自定义对象等等。
我们可以给引用数据类型添加属性

   var myObj=new Object();
        //        myObj.name='tom';
        //         console.log(myObj.name);
        

给基本数据类型添加属性

 var a = 10;
        //  a.biu = 10;
        //  console.log(a.biu + a); 

虽然我们可以给基本类型动态添加属性,
但是在我们在调用这个属性会丢失,返回undefined。
不会报错,但在系统检查为原始数据类型的瞬间会被删除
2.隐式的全局变量

        var a=1
         function func(){
             var b=2
         }
          func()
         console.log(b) //打印结果为

          var a = 1
           function func() {
               a = b = 2
           }
           func()
           console.log(b) // ?

JS中不用var声明的变量默认是全局变量,而这里的连等使的情况更加隐蔽。
这里的b是全局的,因此func外可以访问。
3.关于return

function foo1() {

            return {
               bar: "hello"

            };

         }

        function foo2() {

            return{
                bar: "hello"

             };

         }
        console.log(foo1());
         console.log(foo2());

在foo2()中遇到包含return语句的行(没有其他内容)时,
会在return语句之后立即自动插入分号。
4.for循环?’,’

for (var i = 0, j = 0;j<7, i < 4; i++ , j++) {
         console.log(i);
     }
var x = (1, 2, 3);
//     console.log(x) //打印结果为
     var f = (function f() { return "1"; },
         function g() { return 2; })();
    console.log(typeof f)
    //打印结果为

    var f = (function g() { return 2; })();

逗号操作符的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。
如果遇到逗号操作符,说明当前的语句并没有执行结束。
5.js预解析
预解析做了两件事情:一个是查找语法错误,另一个就是声明提升。
JS在预解析时只会将变量的声明提升,而不包括变量的值。

  var uname = 'jack'
    console.log(uname)
    var uname='lily'
    console.log(uname)
    打印结果为

     var uname = 'jack'
     function arr() {

         console.log(uname) // ?
         var uname = 'lily'
         console.log(uname)
     }
     arr()

预解析之时,var声明的变量会全部提升至所属作用域最高并赋值undefined。
js中没有代码块的概念,只有函数可以限定作用域,函数内部是一个完整的作用域结构。
 预解析会提升声明至当前作用域中最高,函数中定义,则提升至函数作用域最高。

#后记#
这个文章里面很多题是从其他博主的文章里面看到的,如果有相同的内容还请见谅。因为分享这个内容的时间很久远,无法找到转载信息,因此标注为原创,希望看到的读者不要误会。如有侵权,请提醒我,我会删除,谢谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值