JavaScript选择题

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

针对 Ecmascript 第三版的选择题


arguments的typeof就是object


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


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

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


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


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

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


同上


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

与第二题有点类似

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


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

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

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


函数提升了两次,第二次把第一次覆盖了,所以 return 后面的 f 是 return 语句的下一条语句声明的函数 f 。
注意自执行函数 (function f (){})(); 中的 f 并没有函数提升效果,它是表达式。所以最有是2
转自    <a target=_blank href="http://www.cnblogs.com/aaronzhang/archive/2013/05/19/3087811.html<a">点击打开链接</a> 

 

好吧,我理解不了……

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

 


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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值