JavaScript 中的 new String("x") 有什么意义?

2023-12-13

有哪些用例new String("already a string")?

它的全部意义是什么?


实际用途很少String创建的对象new String("foo")。唯一的优点是String对象比原始字符串值更重要的是,作为一个对象,它可以存储属性:

var str = "foo";
str.prop = "bar";
alert(str.prop); // undefined

var str = new String("foo");
str.prop = "bar";
alert(str.prop); // "bar"

如果您不确定可以将哪些值传递给您的代码,那么我建议您的项目中存在更大的问题。返回字符串的原生 JavaScript 对象、主要库或 DOM 方法都不会返回String对象而不是字符串值。但是,如果您想绝对确定您有一个字符串值而不是一个String对象,您可以将其转换如下:

var str = new String("foo");
str = "" + str;

如果您要检查的值可以是任何对象,您的选项如下:

  1. 不用担心 String 对象,只需使用 typeof。这是我的建议。

    typeof str == "string".

  2. 使用instanceof和typeof。这通常有效,但缺点是会为在另一个窗口中创建的 String 对象返回误报。

    typeof str == "string" || str instanceof String

  3. Use 鸭子打字。检查是否存在一个或多个特定于字符串的方法,例如 substring() 或 toLowerCase()。这显然是不精确的,因为对于恰好具有您正在检查的名称的方法的对象,它会返回误报,但在大多数情况下它已经足够好了。

    typeof str == "string" || typeof str.substring == "function"

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中的 new String("x") 有什么意义? 的相关文章

随机推荐

  • 根据命名向量更改列名称 (R)

    我有以下数据框 a b c d e f g h i j 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 以及以下向量 或数据框
  • Google 电子表格“=QUERY” join() 等效函数?

    这个问题是关于使用 QUERY 函数在 Google 电子表格中连接两个数据库 我有一个像这样的表 范围为 A1 C3 a d g b e h c f i 我还有另一张桌子 c j m a k n b l o 我希望决赛桌看起来像这样 a
  • Google 容器引擎 Kubernetes 服务 LoadBalancer 是否将流量发送到无响应的主机?

    问 Kubernetes 通过 Google Container Engine 创建的 Google Cloud 网络 LoadBalancer 是否会将流量发送到未监听的主机 此目标池没有运行状况检查 因此流量将发送到所有实例 无论其状态
  • 如何使用cURL发送Cookies?

    我读到了使用 cURL 发送 cookie有效 但不适合我 我有一个像这样的 REST 端点 class LoginResource restful Resource def get self print session if USER T
  • C++“返回局部变量的引用”

    我在使用此函数时遇到错误 说 警告 对局部变量 final 的引用返回 任何想法有什么问题吗 以及如何修复它 vector
  • 一种在 MVC 中封装(添加隐私)模型的方法?

    我为我的模型和单个控制器命名空间 如下所示 var MC 然后根据需要添加属性 例如 初始化所有模型的代码如下所示 MC initAll function MC MASettings init MC MATweet init MC MUse
  • 如何通过短信检索 GPS 位置

    我制作了一个应用程序 可以为我提供 Android 手机的位置 现在我想做一个方法 帮助我通过短信检索手机的 GPS 位置 纬度经度或地址 如果可能 例如 电话号码 558899 我向 558899 发送一条包含 获取位置 的短信 并收到一
  • 解析存储在 Oracle 表中的 XML 字符串

    我的数据库中存储了一个类似的 XML 字符串
  • 如何在 gnuplot 处理的任何时间获取特定行中特定列的值?

    我得到了一个格式如下的数据文件 begin 16 1 15 2 14 3 13 4 12 5 11 6 现在我想使用 gnuplot 通过点画一条线 1 16 16 2 16 15 3 16 14 6 16 11 如您所见 x 轴是范围 1
  • 非常简单的 C# CSV 阅读器

    我想从 CSV 文件创建一个数组 这就像您想象的一样简单 CSV 文件只有一行和这些值 Device SignalStrength Location Time Age 我想将这些值放入一维数组中 我尝试了一些示例 但它们都比所需的更复杂 您
  • 列出当前进程中的所有线程?

    我正在尝试实现一个系统调用 它允许我获取当前进程的线程数 我是Linux内核的新手 所以我对它的理解很有限 目前 我正在尝试迭代所有task structs 并将它们的线程组领导者的PID与当前线程组领导者的PID进行比较 int nthr
  • 如何获取JFrame中的所有元素?

    我有这段代码来获取我需要的所有元素并进行一些处理 问题是我需要指定每个面板 我必须获取其中的元素 for Component c panCrawling getComponents processing for Component c pa
  • 如何将导航道具从父组件传递到标头?

    我有 4 个页面 App js HomeScreen js Login js Toolbar js 我的应用程序页面与 StackNavigator import React Component from react import Plat
  • UITableView滑动删除不确认

    关于 UITableView 中滑动删除功能的快速问题 有没有办法直接删除行而不显示 删除 按钮并等待用户确认 实现您的自定义 UITableViewCell 并利用UISwipe手势识别器 您必须自己编写所有逻辑 协议 委托等 但您将可以
  • 簇块异常

    我使用清晰的语言来构建我的聊天机器人 https github com samtecspg 铰接 当我执行时出现以下错误docker compose up api 1 api 1 usr src app server index js 33
  • 断言错误:302!= 200

    我尝试在我的tests py中创建一个测试 class TaskViewTests TestCase def test task view with no task self If no task exist an appropriate
  • SQL Server 2008 中的小时和分钟总和

    我写了一个查询 但它没有给出正确的答案 我想像这样显示 5小时58分钟 7小时58分钟 13小时56分钟 答案应该13 56 但是下面的查询给出15 09 请回复我任何其他解决方案 这里Effort1是 5 小时专栏 Effort1Minu
  • 基于列名称模式的多个成对差异

    我有一个data table dt dt Id v1 v2 v3 x1 x2 x3 1 7 1 3 5 6 8 2 1 3 5 6 8 5 3 3 5 6 8 5 1 v1 v2 v3 和 x1 x2 x3 是数值变量 我想从 v 列中减去
  • Flutter 的 pubspec.yaml 中依赖版本号之前的插入符号 (^) 是什么?

    In the pubspec yaml我的 Flutter 项目的文件中有一个插入符号 位于某些依赖项的版本号之前 dependencies flutter sdk flutter cupertino icons 0 1 2 english
  • JavaScript 中的 new String("x") 有什么意义?

    有哪些用例new String already a string 它的全部意义是什么 实际用途很少String创建的对象new String foo 唯一的优点是String对象比原始字符串值更重要的是 作为一个对象 它可以存储属性 var