讲师回答 / Bosn
,操作符就是从左到右依次计算表达式,最后返回最右边的操作数。所以这里(1, 2, 3)返回3.单纯按照例子中这样写没特别意义,写var val = 3;即可。
2015-03-11
讲师回答 / Bosn
先搞清楚什么是函数声明一个完整语句,以function开头,例如:// 这是函数声明function foo() {}而用括号括起来的,或者前面有一元操作符的,都是函数表达式,例如:// 函数表达式(function foo() {})// 函数表达式!function foo() {}// 函数表达式+function foo() {}
2015-03-10
讲师回答 / Bosn
str是string(基本类型),本身是没有方法的。当尝试把基本类型的str当做对象一样访问时,例如:str.length; 解释器会创建一个临时的包装对象,伪代码:[[tempObj]] = new String(str);[[tempObj]].length; // 返回具体的length;delete [[tempObj]]; // 销毁临时对象重复访问str.length会重复创建这个临时对象。所以str.t赋值可以成功,但再次访问str.t返回undefined,因为每次创建的临时包装对象都是不...
2015-03-06
讲师回答 / Bosn
红色区域内,try没有对应的catch,所以throw出去的Error("oops")抛了出去,在此之前不管是否抛异常都要先走finally,所以先输出"finally", 而后外层的try/catch捕获到这个Error("oops"),所以第二条输出"outer" "oops"
2015-03-04
讲师回答 / Bosn
在视频里其实介绍过,如果直接写{}.toString, {}会被解释为块儿,类似while (true) {}这里的{}.而这里需要的是一个对象字面量,所以要这样写:({}).toString.apply或者var result = {}.toString.apply...都可以。
2015-02-26
讲师回答 / Bosn
我已经尽可能的用大量例子去讲解了,并且也配合了对比。如果还是看不懂的话,建议找一些书籍,或网上搜索一些材料再仔细看看。如果还有问题,具体问题具体分析。“有些模糊”这种描述,没办法给你回答。
2015-02-24