(JS)为什么我的While Loop不工作!?也许我不了解基本概念

时间:2015-06-03 17:26:51

标签: javascript while-loop

以下是代码:

var n = 4;
while(n) {
console.log("Hey!");
n = 5;
}

我在这里:

n是一个变量,值为4.

当n = 4时,在控制台中打印“嘿”。

将n的值更改为5。

检查n = 4。

n不等于4,所以停止执行代码!

我哪里错了?我真的很沮丧!编辑了一百万次!最糟糕的是,浏览器每次都崩溃了! 请纠正我!

1 个答案:

答案 0 :(得分:2)

  

我在这里:

     

n是一个变量,值为4.

     

当n = 4时,在控制台中打印“嘿”。

it('"get" rejects with invalid path', function() { $httpBackend.whenGET('/invalid').respond(404, ''); var wasRejected = false; $http.get('/invalid') .error(function (data, status, headers, config) { console.log(status); wasRejected = true; }); // Trigger http promise resolution $httpBackend.flush(); // Make your assertion... expect(wasRejected).toBeTrue(); }); afterEach(function(){ $httpBackend.verifyNoOutstandingExpectation(); $httpBackend.verifyNoOutstandingRequest(); }); 没有检查while(n)是否为n,它会检查4是否 truthy < / em>的*。 n4都是 truthy 值。

要检查是5,请使用4==

===

(有关while (n === 4) { console.log("Hey!"); n = 5; } ==的详情,请参阅this question及其答案。)

* JavaScript在许多地方使用类型强制,包括测试===循环和类似的条件时。所以我们谈论价值观是“真实的”(他们强迫while)或“假”(他们强迫true)。 Truthy值都是非虚假的值。假名值为false0""nullundefined,当然还有NaN