输出结不雅是:
- "array 1: length=5 last=j,o,n,e,s"
- "array 2: length=5 last=j,o,n,e,s"
arr1 和 arr2 在上述代码履行之后,两者雷同了,原因是:
调用数组对象的 reverse() 办法并不只返回反次序的┞敷列,它也反转了数组本身的次序(即,在这种情况下,指的是 arr1)。
reverse() 办法返回一个到数组本身的引用(在这种情况下即,arr1)。其结不雅为,arr2 仅仅是一个到 arr1的引用(而不是副本)。是以,当对 arr2做了任何工作(即当我们调用 arr2.push(arr3);)时,arr1 也会受到影响,因为 arr1 和 arr2 引用的是同一个对象。
这里有几个侧面点有时刻会让你在答复这个问题时,暗沟里翻船:
传递数组到另一个数组的 push() 办法会让全部数组作为单个元素映射到数组的末尾。其结不雅是,语句 arr2.push(arr3); 在颇┞符体中添加 arr3 作为一个单一的元素到 arr2 的末尾(也就是说,它并没有连接两个数组,连接数组是 concat() 办法的目标)。
和Python一样,JavaScript标榜数组办法调用中的负数下标,例如 slice() 可作为引用数组末尾元素的办法:例如,-1下标表示数组中的最后一个元素,等等。
15.下面的代码将输出什么到控制台,为什么?
- console.log(1 + "2" + "2");
- console.log(1 + +"2" + "2");
- console.log(1 + -"1" + "2");
- console.log(+"1" + "1" + "2");
- console.log( "A" - "B" + "2");
- console.log( "A" - "B" + 2);
闭包是一个可以拜访外部(封闭)函数感化域链中的变量的内部函数。闭包可以拜访三种范围中的变量:这三个范围具体为:(1)本身范围内的变量,(2)封闭函数范围内的变量,以及(3)全局变量。
膳绫擎的代码将输出以下内容到控制台:
- "122"
- "32"
- "02"
- "112"
- "NaN2"
- NaN
原因是…
例1:1 + "2" + "2" 输出:"122" 解释: 1 + "2" 是履行的第一个操作。因为个一一个运算对象("2")是字符串,JavaScript会假设它须要履行字符串连接,是以,会将 1 的类型转换为 "1", 1 + "2"结不雅就是 "12"。然后, "12" + "2" 就是 "122"。
例2: 1 + +"2" + "2" 输出: "32" 解释:根据运算的次序,要履行的第一个运算是 +"2"(第一个 "2" 前面的额外 + 被视为一元运算符)。是以,JavaScript将 "2" 的类型转换为数字,然后应用一元 + 号(即,将其视为一个正数)。其结不雅是,接下来的运算就是 1 + 2 ,这当然是 3。然后我们须要在一个数字和一个字符串之间进交运算(即, 3 和 "2"),同样的,JavaScript会将数值类型转换为字符串,并履行字符串的连接,产生 "32"。
推荐阅读
51CTO诚邀您9月23号和秒拍/国美/美团元专家一路聊智能CDN的优化之路,抓紧时光哦! 智能科技的出现、大年夜数据风口的到来、生物辨认技巧的广泛应用都在开端影响我们的生活,并开启了一个&>>>详细阅读
地址:http://www.17bianji.com/lsqh/37446.html
1/2 1

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