JavaScript 中的真假与真假有什么区别?

Ami*_*ard 7 javascript boolean falsy truthy

我对 JavaScript 中的一些概念有疑问,例如(truthy, true)(falsy, false)

我知道 1 的类型不是,true但问题是:为什么1 == true

ECMAScript 将 1 或“ghsagh”视为 的主要原因是true什么?

我也无法理解的含义truthyfalsy

这种考虑有什么好处?!

Dav*_*eve 6

JavaScript 喜欢尽可能将值隐式转换为其他类型。因此,当将布尔值与其他类型的变量进行比较时,JavaScript 使用与旧编程语言相同的逻辑。表示空、null 或零的值(例如 0 或“”)计算结果为 false,任何其他值(例如 1、5、-19、“ghsfsah”或其他有意义的内容)计算结果为 true。

为什么要这样做?首先,它为开发人员在检查变量是否有内容时提供了一个小捷径。例如,如果用户没有在文本字段中输入内容,我们可以轻松检查字段是否为空并提示用户。

if ( !textfield.value ) {
    alert( "Please enter something in the text box" );
}
Run Code Online (Sandbox Code Playgroud)

如果您需要查看某物是否实际上trueor false,您可以使用===.

  • @AmirJalilifard:我认为问题在于你的问题被理解为_为什么语言认为“1”为真_(因为它是这样指定的)而不是_为什么语言的设计者以这种方式指定它_。我确实从第一个意义上解释了它,直到你澄清为止。 (2认同)