js题集4

1

(function(){

  return typeof arguments;

})();

答案:object

知识点:typeof返回的六种类型,boolean,object,undefined,string,number,function(追问:typeof null 输出)

arguments--类数组-类数组不是数组(类数组或者有称伪数组--知识链接 length, slice等)

arguments还是个object。

2

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

typeof g();

答案:bug。

知识点:函数标示符和指向函数指针

f最终指向的是函数,

上面的code是一个函数表达式,函数表达式右侧标识符g只存在于函数作用域内,

外部调用自然不识别。

3

(function(x){

  delete x;

  return x;

})(1);

答案:false 1

知识点:关于delete,

参数不可删除(var 声明的变量可以删除么?不用var 声明的变量可以删除么?)

4

 var y = 1, x = y = typeof x;

  x;

答案:undefined

知识点:函数执行顺序(变量声明提前)

连等号从右往左执行

var y=1;

var x=undefined;

y=typeof x;

x=y;

x;

5

(function f(f){

    return typeof f();

  })(function(){ return 1; });

答案:1

知识点:函数内部变量和函数参数的优先级谁更高。

6

var foo = {

    bar: function() { return this.baz; },

    baz: 1

  };

  (function(){

    return typeof arguments[0]();

  })(foo.bar);

7

var foo = {

    bar: function(){ return this.baz; },

    baz: 1

  }

  typeof (f = foo.bar)();

8

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

  typeof f;

9

 var x = 1;

  if (function f(){}) {

    x += typeof f;

  }

  x;

10

var x = [typeof x, typeof y][1];

  typeof typeof x;

11

(function(foo){

    return typeof foo.bar;

  })({ foo: { bar: 1 } });

12

(function f(){

    function f(){ return 1; }

    return f();

    function f(){ return 2; }

  })();

13

function f(){ return f; }

  new f() instanceof f;

14

with (function(x, undefined){}) length;

15

typeof typeof(null)

16

100['toString']['length']

17

var a = (1,5 - 1) * 2

18

var x = 10;

var foo = {

    x: 20,

    bar: function () {

        var x = 30;

        return this.x;

    }

};

 

console.log(

    foo.bar(),             // 1.

    (foo.bar)(),           // 2.

    (foo.bar = foo.bar)(), // 3.

    (foo.bar, foo.bar)()   // 4.

);

posted @ 2017-08-08 10:47  tong24  阅读(146)  评论(0编辑  收藏  举报