为什么JavaScript中的“新”字符串(“。”)被评估为false?

在 JavaScript 中,字符串是一种基本数据类型,用于表示文本信息。但是,当我们尝试将一个看似是新字符串的字符“。”(U+002E)作为布尔值进行求值时,它会被评估为 false。这是因为“。”被认为是 falsy 值。在本文中,我们将探讨这个问题的原因,并提供一些解决方案。

Falsy 值

在 JavaScript 中,有一组被认为是“falsy”的值。Falsy 值是指在 Boolean 上下文中被视为 false 的值。以下是 JavaScript 的 falsy 值列表:

  • false
  • 0(数字零)
  • -0(负零)
  • 0n(BigInt 零)
  • ""(空字符串)
  • null
  • undefined
  • NaN(非数字)

如果一个值不属于上述任何一项,则称为“truthy”值,即在 Boolean 上下文中被视为 true 的值。

“。”为什么是 Falsy 值?

如前所述,“。”在 JavaScript 中被认为是 falsy 值。这是因为字符串转换规则可以将其转换为数字零。当使用 Number() 函数将字符串“。”转换为数字时,它将返回 0。因此,在布尔上下文中,字符串“。”被视为 falsy 值。

------------------------- -- -
-------------------------- -- -----

解决方案

如果您的代码需要将字符串“。”作为 truthy 值处理,则可以使用以下解决方案之一:

1. 使用严格相等运算符

在 JavaScript 中,有两种相等运算符:双等号(==)和三等号(===)。双等号测试两个值是否相等,而三等号测试两个值是否严格相等(即它们类型相同且具有相同的值)。

由于“。”是一个字符串,因此我们可以使用三重等号来测试其是否与字符串“。”本身严格相等:

----- --- - ----
-- ---- --- ---- -
  ---------------- -- ---------
- ---- -
  ---------------- -- --------
-

2. 显式类型转换

如果您需要将字符串“。”转换为 truthy 值,则可以使用以下任何一种显式类型转换:

  • 字符串拼接:您可以将空字符串(或任何非零长度字符串)与“。”连接起来,从而使其成为一个 truthy 字符串。
----- --- - ----
-- --- - ---- -
  ---------------- -- ---------
- ---- -
  ---------------- -- --------
-
  • Boolean 类型转换:您可以通过将字符串“。”传递给 Boolean() 函数来将其转换为 truthy 值。
----- --- - ----
-- -------------- -
  ---------------- -- ---------
- ---- -
  ---------------- -- --------
-

结论

在 JavaScript 中,字符串“。”被认为是 falsy 值,因为它可以转换为数字零。如果您的代码需要将其作为 truthy 值处理,则可以使用严格相等运算符或显式类型转换来实现。重要的是要记住,JavaScript 提供了两种相等运算符,您应该使用适当的运算符进行测试。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/10840


猜你喜欢

  • 在Firefox上开发的JavaScript在IE上失败的典型原因是什么?[关闭]

    在Firefox上开发的JavaScript在IE上失败的典型原因是浏览器之间对JavaScript标准的解释不尽相同,而且IE浏览器通常支持较旧版本的JavaScript。

    7 年前
  • 最快的方法来对嵌套的 JSON 对象进行扁平化

    在处理前端开发中的数据时,我们通常需要将嵌套的 JSON 对象转换为扁平的格式以便于使用。但是,如果数据量很大,这个过程可能会变得非常耗时。在本文中,我们将介绍一些最快的方法来对嵌套的 JSON 对象...

    7 年前
  • 用逗号赋值是否有效?

    在前端开发中,我们常常使用逗号来一次性声明和初始化多个变量。例如: --- - - -- - - -- - - --但是,有些开发者认为使用逗号赋值的方式会影响代码可读性和维护性,因此不建议使用。

    7 年前
  • 亚马逊S3直接从客户端浏览器上传文件-私钥泄露

    背景 Amazon S3是Amazon Web Services(AWS)提供的一种简单存储服务,可用于存储和检索任意数量的数据。S3的一个功能是允许用户直接从客户端浏览器上传文件到其存储桶中。

    7 年前
  • 在不同的readystates XMLHttpRequest意味着什么,以及如何使用它们呢?

    XMLHttpRequest是一种用于在浏览器中发送HTTP请求和获取响应的API。当我们创建一个XMLHttpRequest对象并发送一个请求时,它会进入不同的readyState状态,表示请求的不...

    7 年前
  • 如何从给定的HTML字符串中删除前导空格和尾随空格?

    在前端开发中,处理 HTML 字符串是一个常见的任务。有时候我们需要从给定的 HTML 字符串中删除前导空格和尾随空格,以确保正确的渲染和布局。本文将介绍如何使用 JavaScript 和正则表达式来...

    7 年前
  • 最简单的方法来检查是否存在对象使用CoffeeScript的关键

    在前端开发中,CoffeeScript 是一种非常流行的编程语言,它提供了简洁、优雅、易读的语法,同时具有强大的功能。然而,在使用 CoffeeScript 进行开发时,我们可能会遇到对象不存在的情况...

    7 年前
  • JavaScript对象如何引用自身的值?

    JavaScript是一种基于对象的语言,对象是JavaScript中最重要的概念之一。在实际编程中,经常需要从一个对象中引用其自身的值。本文将详细介绍JavaScript对象引用自身值的方法,并提供...

    7 年前
  • 查询功能没有定义select2未定义的错误

    在前端开发中,我们经常会使用select2插件来实现下拉选择框的功能。然而,有时候我们可能会遇到一个问题:查询功能没有定义select2未定义的错误。 这个错误通常出现在使用select2的搜索功能时...

    7 年前
  • 你能禁用引导程序中的制表符吗?

    在前端开发中,我们通常使用Bootstrap来快速构建网站和应用程序。但是,有时候在使用Bootstrap时会遇到一些问题,比如无法禁用制表符。 制表符的问题 在Bootstrap中,制表符(Tab)...

    7 年前
  • PhoneGap:如何检测桌面浏览器运行

    简介 PhoneGap 是一个跨平台的移动应用程序开发框架,它使用 HTML、CSS 和 JavaScript 进行开发,同时支持多种移动操作系统,例如 Android 和 iOS。

    7 年前
  • 如何使用JS比较软件版本号

    在前端开发中,我们经常需要比较不同软件版本的大小。这个过程通常是通过将版本号拆分成数字部分并逐位比较来完成的。在本文中,我们将讨论如何使用JavaScript实现这个过程。

    7 年前
  • 获取元素属性时,为什么不要使用 `querySelectorAll`?

    在前端开发中,获取元素属性是一个非常常见的操作。我们可以使用许多方法来获取元素属性,例如 getElementById、getElementsByClassName、getElementsByTagN...

    7 年前
  • 如何在JavaScript中实现区域/代码崩溃

    在开发Web应用程序时,经常会遇到各种错误和异常。有些错误可能导致整个应用程序崩溃,这对用户体验来说是非常糟糕的。为了避免这种情况的发生,我们可以使用一些技术来捕获和处理这些错误。

    7 年前
  • 原型继承 - 编写 [复制]

    在 JavaScript 中,原型继承是实现面向对象编程的基础。本文将详细介绍 JavaScript 中的原型继承机制,并提供示例代码。 什么是原型继承 JavaScript 中的每个对象都有一个原型...

    7 年前
  • 为什么JavaScript叫做JavaScript,而不是Java?

    在前端开发中,我们经常使用的一门语言就是JavaScript。然而,很多人都会问:既然JavaScript跟Java没关系,为什么它要取这个名字呢?本文将从历史、设计和发展等方面解答这个问题。

    7 年前
  • 对象数组的JavaScript减少

    在前端开发中,我们常常会使用对象数组来存储和处理数据。但是,在处理大量数据时,对象数组的效率可能会受到影响。本文将介绍如何通过JavaScript减少对象数组的方法来提高代码的性能。

    7 年前
  • 使用地理位置获得城市名称

    在前端开发中,我们经常需要获取用户的地理位置信息。获得用户的地理位置信息可以让我们更好地为他们提供定制化的服务,例如:显示当地天气、推荐附近的餐厅等等。本文将探讨如何使用地理位置信息来获得用户所在的城...

    7 年前
  • 如何从JavaScript数字中删除小数部分?

    如何从JavaScript数字中删除小数部分? 在JavaScript中,可以使用Math.floor()和parseInt()函数来删除数字的小数部分。以下是详细的介绍和示例代码。

    7 年前
  • 检查 jQuery 是否已加载,然后加载它

    在前端开发中,jQuery 是一个非常流行的 JavaScript 库,可以方便地操作 HTML 元素、处理事件等。但有时我们需要在网站中动态加载 jQuery,因为用户可能已经提前缓存了这个库,或者...

    7 年前

相关推荐

    暂无文章