JavaScript选择题

http://perfectionkills.com/javascript-quiz/点击打开链接

针对 Ecmascript 第三版的选择题


JavaScript选择题_第1张图片

arguments的typeof就是object

JavaScript选择题_第2张图片

这种形式叫做命名的函数表达式,它的名字g只在函数体内可见。在函数外部不可见,所以报错。


JavaScript选择题_第3张图片

函数中的delete没有生效,在函数内部,delete无法删除形参,但是删除的时候也不会报错

如果要删除x,那么就:x=undefined


JavaScript选择题_第4张图片

赋值符号具有右结合性,所以typeof x得值为undefined,再赋值给y,然后再给x


JavaScript选择题_第5张图片

函数接受本身作为自己的参数,这时要看谁的优先级高,明显参数的优先级高,typeof 1

JavaScript选择题_第6张图片

下面的函数,执行foo.bar的时候,this指向的是Windows,全局中没有baz变量,所以为undefined


JavaScript选择题_第7张图片

同上

JavaScript选择题_第8张图片


首先要理解分组选择符,最后a会赋给什么呢?  (转)
 var a = (1,2,3); 
 alert(a) ---> 3 
那么这就简单了,f = function(){return 2};
typeof f() ---> number

JavaScript选择题_第9张图片

与第二题有点类似

//x的值   转别人的   点击打开链接
函数声明只能裸露于全局作用域下或位于函数体中。  
从句法上讲,它们不能出现在块中,例如不能出现在  if、while 或 for 语句中。因为块只能包含语句,  
因此if()中的f函数不能当做函数声明,当成表达式使用
可能在预编译阶段做了如下处理  
if((XXX = function(){}))  
因此我们是找不到f的 , 1,undefined


JavaScript选择题_第10张图片

题目中相当于var x=[”defined“,“undefined”]---------string

typeof string---------“string”

JavaScript选择题_第11张图片

//自动执行函数的返回值?
分解一下  
 var bb = { foo: { bar: 1 } }  
  (function(j){  
    return typeof j.bar  
 })(bb)  
 "undefined" 
注意那个对象只有foo属性,没有bar属性


JavaScript选择题_第12张图片

函数提升了两次,第二次把第一次覆盖了,所以 return 后面的 f 是 return 语句的下一条语句声明的函数 f 。
注意自执行函数 (function f (){})(); 中的 f 并没有函数提升效果,它是表达式。所以最有是2
转自    点击打开链接 

 
  

JavaScript选择题_第13张图片

好吧,我理解不了……

//最后一行结果?
由于函数f会返回自身,这个new 就形同虚设
如果f的形式为 function f(){return this}或function f(){}就不一样 
false  构造函数本身在 new 的过程中会返回一个表示该对象的实例。但是函数的返回值覆盖了这个实例,所以答案是 false

 
  

JavaScript选择题_第14张图片

with中有多少个参数,length就有多长。所以选2


你可能感兴趣的:(JavaScript)