检查变量是否是字符串的简单方法?

2024-01-16

这个问题是一个衍生问题[] 是 Array 的实例,但 "" 不是 String 的实例 https://stackoverflow.com/questions/12254658/is-an-instance-of-array-but-isnt-of-string

鉴于

"" instanceof String; /* false */
String() instanceof String; /* false */
new String() instanceof String; /* true */

and

typeof "" === "string"; /* true */
typeof String() === "string"; /* true */
typeof new String() === "string"; /* false */

然后,如果我有一个变量abc我想知道它是否是一个字符串,我可以这样做

if(typeof abc === "string" || abc instanceof String){
    // do something
}

是否有更简单、更短和原生的方法来执行此操作,或者我必须创建自己的函数?

function isStr(s){
    return typeof s === "string" || s instanceof String;
}
if(isStr(abc)){
    // do something
}

I think Object.prototype.toString.call(a) === "[object String]"是执行此操作的最短/最原生的方法

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

检查变量是否是字符串的简单方法? 的相关文章

随机推荐

  • 使用 cmake 和命令行构建 MSVC 项目

    再会 让我们有一个源文件main cpp and a CMakeLists txt包含下一个文本的文件 cmake minimum required VERSION 2 6 project tmp set CMAKE CXX FLAGS W
  • 准备好的语句中空 LIKE 的性能影响

    我设置了一个 GiSTpg trgm http www postgresql org docs current interactive pgtrgm html上的索引name的栏目files table 准备好的语句的简化查询如下所示 SE
  • 将对象传递给 NSThread 选择器

    当我创建 NSThread 时 我向它传递了一个我希望进程知道的数字 我可以理解如何设置数字 但我不知道如何从线程选择器方法中读取数字 以便我可以将其传递给计时器 你怎么做呢 void setthread 在这里将数字传递给选择器就好了 N
  • 如何在 ColdFusion 中获取计划任务列表和上次运行结果?

    我们正在尝试为我们的 cron 作业 CF Java SQLServer 等 构建一个仪表板 以便我们可以看到上次运行的时间 结果是什么以及计划下次运行的时间 有没有办法使用 CFAdmin API 或一些未记录的
  • 日期时间支持的格式化语言?

    DateTime 让您可以根据当前文化进行格式化 默认支持哪些文化 我想到的使用场景this Date Value ToString MMMM 如果文化设置为英语 美国 则将打印 January 但如果文化设置为法语 ca 则将打印 Jan
  • Blogger 著名模板 - 分页后修复或替换?

    Blogger Notable 模板的主页底部的帖子分页链接仅显示 更多帖子 链接 它缺少 以前的帖子 它还缺少传统的 主页 链接 更多帖子 链接正确地消失在帖子的最后一页上 我希望至少启用一个 以前的帖子 链接 这似乎是 Google 故
  • 没有 Storyboard 的 Segue

    我正在尝试制作一个在每个视图上都有一个主页按钮的应用程序 但我正在寻找一种在单击此按钮时导航到主屏幕的方法 而不需要为 StoryBoard 上的每个屏幕到主页创建一个 物理 链接屏幕 我尝试使用这段代码 IBAction func btn
  • 用于在 Internet Explorer 7 中打开多个页面的 Windows 控制台命令

    如何使用单个 DOS 命令在 Internet Explorer 7 中打开多个页面 批处理文件是执行此操作的唯一方法吗 Thanks 批处理文件将作为一种快速但肮脏的解决方案 echo off setlocal openurl set u
  • Jenkins Pipeline 有“多个候选版本”并且正在选择旧版本

    我配置了一个 Jenkins 多分支管道 它应该从远程 GIT 存储库获取源代码以进行构建 詹金斯似乎 随机 选择一个旧的提交来构建 并在构建日志文件中显示消息 多个候选修订 我的管道看起来像 checkout class GitSCM b
  • XML:如何将一个文件读入另一个文件

    我有一个文件 A xml 包含如下内容
  • 嵌入或引用关系

    我使用 mongodb 和 mongoid gem 我想得到一些建议 我有一个应用程序 其中用户has many市场与市场has many产品 我需要在属于用户的所有 或任何 市场中搜索特定价格范围内的产品 哪种关系更适合这种情况 嵌入关系
  • ActiveRecord :includes - 如何使用带有加载关联的地图?

    我有一个小型 Rails 应用程序 我正在尝试获取一些订单统计信息 所以我有一个管理模型和一个订单模型 具有一对多关联 class Admin lt ActiveRecord Base attr accessible name has ma
  • 多线程将对象引用传递给静态帮助器方法

    我只是 Java 的初学者 偶然发现了多线程应用程序 我知道这个问题与这里的一些帖子类似 但我找不到更好的答案来回答我的问题 基本上 我想将对象传递给静态方法 该方法将仅根据对象的值 属性返回输出 对于每次调用 我都会创建该对象的一个 新实
  • 视图控制器可以访问传入 Segue 的标识符吗?

    视图控制器可以访问用于转换到它的 Segue 的标识符吗 例如 我使用带有标识符 mySegue 的 Segue 从视图控制器 A 转换到视图控制器 B 无论如何 视图控制器 B 是否可以获取 segue 的标识符 我不相信有这样的财产 这
  • JAX-RS 中的 @Produces 注释

    我的服务方法产生其中之一MediaTypes它可能会产生pdf or excel文件或其他 Produces application pdf application vnd ms excel 我的问题 我的服务返回响应类型applicati
  • 在 Swift 中使用实时滤镜录制视频

    我是 swift 的新手 试图构建一个相机应用程序 它可以应用实时滤镜 并使用应用的滤镜进行保存 到目前为止 我可以使用应用的滤镜实时预览 但当我保存视频时 它全黑了 import UIKit import AVFoundation imp
  • 发布模式出错,但调试模式下不出错

    我的代码在调试模式下运行良好 但在发布模式下失败 这是我失败的代码片段 LOADER gt AllocBundle m InitialContent while m InitialContent isReady this gt Loadin
  • 带 Plotly 的树形图:空白屏幕?

    我正在使用 R 编程语言 我正在尝试遵循此处提供的答案 R 中使用plotly 绘制树形图 https stackoverflow com questions 72179306 treemap plot with plotly in r 我
  • “索引签名参数类型不能是联合类型。” – 我应该用什么来代替?

    当我尝试编译此 Typescript 代码时 interface Foo foo hello world string 我收到此错误消息 索引签名参数类型不能是联合类型 考虑改用映射对象类型 什么是映射对象类型 如何使用它 映射的对象类型对
  • 检查变量是否是字符串的简单方法?

    这个问题是一个衍生问题 是 Array 的实例 但 不是 String 的实例 https stackoverflow com questions 12254658 is an instance of array but isnt of s