【问题标题】:what is assert in JavaScript [duplicate]JavaScript中的断言是什么[重复]
【发布时间】:2015-04-19 03:49:46
【问题描述】:

在《JavaScript Ninja 的秘密》一书中,作者演示了这段代码:

<script type="text/javascript">
    var outerValue = 'ninja' 
    function outerFunction() {
        assert(outerValue, "I can see the ninja");
    }
    outerFunction();
</script>

输出为:I can see the ninja

断言有什么用?为什么不直接使用 console.log?

【问题讨论】:

  • assert 的第一个参数用于评估真实性。如果是,则打印第二个参数。如果没有,它什么也不打印。这很有用,因为我们可以使用它让程序仅在断言违反时才打印一些东西,提醒人们采取行动。

标签: javascript


【解决方案1】:

“assert”是一个非标准函数。尽管所有主要浏览器似乎都以某种形式拥有它。

如果断言为真,它会向控制台写入一个值。在这种情况下,outerValue 等于一个真值(例如,非假)。它对测试很有用,不推荐用于生产。它首先评估一个布尔值以确定它是否应该打印消息这一事实使它与 console.log 不同。

Mozilla Docs
Already answered here

【讨论】:

  • 但是在 Mozilla Docs 中他们说“如果断言为假,则将消息写入控制台。”
【解决方案2】:

Javascript assert,官方解释:

assert(value[, message])

message 两边的方括号表示第二个参数是可选的。

javascript assert 测试第一个参数(值)是否为真,如果是,则将第二个可选参数打印到标准输出。

assert(outerValue, "I can see the ninja");

你的变量outerValues 有字符串“ninja”,javascript 评估它的真实性,它是真实的,所以它输出“I can see the ninja”。

来源:https://nodejs.org/api/assert.html

【讨论】:

  • 官方出自哪里?
  • 来自node.js,url:nodejs.org/api/…
  • 很好,这就是我的想法,因为我遇到了一段代码,上面写着 assert(!outerValue, "outer value is not here")。
  • 但是在 node.js url 中,他们说“如果值不真实,则会抛出 AssertionError,并且消息属性设置为等于消息参数的值。”
猜你喜欢
  • 2013-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-18
  • 2010-12-06
  • 2017-12-12
  • 2017-06-09
相关资源
最近更新 更多