javascript代码如下:
(function() {
var holo, num;
num = 6;
holo = (function() {
var _results;
_results = [];
while (num -= 1) {
console.log(num)
_results.push(num += 'yo yo yo yo');
console.log(typeof num, num -= 1)
}
return _results;
})();
console.log(holo);
}).call(this);
打印出来的值是
5
string NaN
["5yo yo yo yo"]
就是说只循环了一次,num被转成了string,值变成了'5'
问题是为什么之后num -= 1的值为NaN。
而单独执行
var num = '6';
num -= 1
输出是却是5,而不是NaN 。
这是为什么,跟闭包有关系么?
人生最曼妙的风景,竟是内心的淡定与从容!