JavaScript 题集1

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.

);

以上是 JavaScript 题集1 的全部内容, 来源链接: utcz.com/z/264761.html

回到顶部