function add(m){
return function(n){
return n+m++;
}
}
var add1=add(070);
var add2=add(050);
console.log(add1(010));
console.log(add2(010));
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
解析什么?不就是两个8进制数相加吗? ++在后面,相当于没有。
两个8进制数相加。
当数字以0开头的时候,数字是八进制而非十进制,070实际上就是十进制的56,以add1为例,
当执行完
var add1=add(070);
这句时,返回一个function
,add1
等价于:然后执行
add1(010)
时,010实际上就是十进制的8add2解析过程同上,050就是十进制的40
本题考查的是闭包和进制换算问题,在js中
070
表示的是8进制,转换成十进制就是56
,050
表示的是40
至于为什么不是65,这就是
++x
和x++
的问题