javascript错误 - for循环

时间:2016-03-31 07:12:07

标签: javascript for-loop

我在js中写了一个这个简单的代码。

    var n=10;
    for (i=1;i=n;i++){
    console.log('avinsyh');
     }

但循环执行大于2000并导致浏览器崩溃。为什么会发生这种情况呢?

注意:如果我执行此操作:

 var n=10;
    for (i=1;i<n;i++){
    console.log('avinsyh');
     }

然后javascritpt输出正确的结果

3 个答案:

答案 0 :(得分:3)

它是for loop的比较部分中的赋值,它产生无限循环。 i始终为n,评估为true

for (i = 1; i = n; i++){
//          ^^^^^

&#13;
&#13;
var n = 10,
    i;

for (i = 1; i <= n; i++){
    document.write('i: ' + i + '<br>');
}
&#13;
&#13;
&#13;

答案 1 :(得分:2)

在你的第一个for循环中,i=n会将i设置为等于n的值,从而返回一个真值(因为n不是0)而你获得无限循环。

答案 2 :(得分:2)

在你的for loop中,你正在确定值override func viewDidLoad() { super.viewDidLoad() self.navigationController?.navigationBar.topItem?.title = "" // 1 let barAppearace = UIBarButtonItem.appearance() barAppearace.setBackButtonTitlePositionAdjustment(UIOffsetMake(0, -60), forBarMetrics:UIBarMetrics.Default) // 2 UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.clearColor()], forState: UIControlState.Normal) //3 UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.clearColor()], forState: UIControlState.Highlighted) //4 } ,它始终为真,因此会导致无限循环。

  

评估条件表达式。如果条件的值是   是的,循环语句执行。如果condition的值为false,   for循环终止。如果省略条件表达式   完全,条件被认为是真实的。

在第二种情况下,您在每次迭代时比较i = n的值,因此您得到了预期的结果。

for循环的基本语法是:

i

因此,在您的第一个案例中,您没有提供for ([initialExpression]; [condition]; [incrementExpression]) statement 而是提供作业。