在下面的示例中,JavaScript似乎完全忽略了我的return语句,只执行代码。
var x = 1;
(function() {
x = 2;
return;
var x = 3;
})();
console.log(x); // Outputs 1 in both Chrome and FF
当然,代码应该输出2?如果我将var关键字从var x = 3中删除,它将按预期输出2。这里有什么奇怪的编译器优化吗?
我在使用Capybara-webkit来使用actioncable和功能说明时遇到了问题。Actioncable在我的开发服务器上工作得很好,但在测试javascript时似乎无法连接。
这是在我的功能规范期间运行的javascript控制台的输出
WebSocket connection to 'ws://127.0.0.1:32789/cable' failed: Unexpected response code: 200
这是当时我的test.log的输出
GET "/cable" for 127.0.0.1 at 2017-01-26 13:
Rails 2.2.2
_competition.html.erb
<p>This is packed</p>
<% pack do %>
// some javascript
<% end %>
competitions_helper.rb
def pack(&block)
yield + 'PACKED'
end
然而,'PACKED‘并没有被附加到我的javascript字符串中,它就好像pack do没有效果一样。看起来块的上下文和实际的视图渲染有些奇怪,因为如果我在helper中删除了让出的调用,并返
奇怪的是,我正在使用Webstorm5.0.1来测试jstestdriver的一些javascript。它确实是岩石,但我不能让我的console.log(警报)输出UTF-8格式!
我已经尝试过很多事情,但我仍然在思考在这个IDE中这是否可能发生。
因此,当我断言文本A等于文本B时,assert返回true,但控制台输出如下:
文本A(硬编码预期结果)
Snart har du ditt Silverkort! Tjäna 735 poäng och bli Silvermedlem.
文本B(控制台输出)
[LOG] Snart har du ditt Silverkort! Tj�?¤