这段代码将输出 456(而不是 123)。
原因为:当设置对象属性时,JavaScript会阴郁字符串化参数值。在这种情况下,因为 b 和 c都是对象,是以它们都将被转换为"[object Object]"。结不雅就是, a[b]和a[c]均相当于a["[object Object]"] ,并可以交换应用。是以,设置或引用 a[c]和设置或引用 a[b]完全雷同。
22.以下代码行将输出什么到控制台?
代码将输出10!的值(即10!或3628800)。
原因是:
f(1): returns n, which is 1 f(2): returns 2 * f(1), which is 2 f(3): returns 3 * f(2), which is 6 f(4): returns 4 * f(3), which is 24 f(5): returns 5 * f(4), which is 120 f(6): returns 6 * f(5), which is 720 f(7): returns 7 * f(6), which is 5040 f(8): returns 8 * f(7), which is 40320 f(9): returns 9 * f(8), which is 362880 f(10): returns 10 * f(9), which is 3628800
定名函数 f()递归地调用本身,当调用 f(1)的时刻,只简单地返回1。下面就是它的调用过程:
23.请看下面的代码段。控制台将输出什么,为什么?
- (function(x) { return (function(y) { console.log(x); })(2) })(1);
控制台将输出 1,即使大年夜来没有在函数内部设置过x的值。原因是:
正如我们在JavaScript雇用指南中解释过的那样,闭包是一个函数,连同在闭包创建的时刻,其范围内的所有变量或函数一路。在JavaScript中,闭包是作为一个“内部函数”实施的:即,另一个函数主体内定义的函数。闭包的一个重要特点是,内部函数仍然有权拜访外部函数的变量。
是以,在本例中,因为 x未在函数内部中定义,是以在外部函数范围中搜刮定义的变量 x,且被发明具有1的值。
24.下面的代码将输出什么到控制台,为什么:
- var hero = { _name: 'John Doe', getSecretIdentity: function (){ return this._name; } };
- var stoleSecretIdentity = hero.getSecretIdentity;
- console.log(stoleSecretIdentity());
- console.log(hero.getSecretIdentity());
代码有什愦问题,以及应当若何修复。
代码将输出:
- undefined
- John
- Doe
第一个 console.log之所以输出 undefined,是因为我们正在大年夜 hero对象提取办法,所声调用了全局高低文中(即窗口对象)的 stoleSecretIdentity(),而在此全局高低文中, _name属性不存在。
个一一种修复stoleSecretIdentity() 函数的办法如下:
- var stoleSecretIdentity = hero.getSecretIdentity.bind(hero);
25.创建一个给定页面上的一个DOM元素,就会去拜访元素本身及其所有子元素(不只是它的直接子元素)的函数。对于每个被拜访的元素,函数应当传递元素到供给的回调函数。
此函数的参数为:
DOM元素
回调函数(将DOM元素作为其参数)
拜访树(DOM)的所有元素是经典的深度优先搜刮算法应用。下面是一个示范的解决筹划:
- function Traverse(p_element,p_callback) {
- p_callback(p_element);
- var list = p_element.children;
- for (var i = 0; i < list.length; i++) {
- Traverse(list[i],p_callback);
- // recursive call
- }
- }
【编辑推荐】
- 当JavaScript 赶上物联网(IoT)
- JavaScript Event Loop机制详解与Vue.js中nextTick的实践应用
- 进修若何应用Chrome DevTools调试JavaScript
- 十个免费的web前端开辟对象 – Envato – Medium
- JavaScript感化域和闭包
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 智能科技的出现、大年夜数据风口的到来、生物辨认技巧的广泛应用都在开端影响我们的生活,并开启了一个&>>>详细阅读
地址:http://www.17bianji.com/lsqh/37446.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示