js中关于字符串的创建和判断类型

2024-01-21

参考链接: JS字符串的创建和常用方法
如何判断JS中一个变量是 string 类型


创建方法

字符串有着两种的创建方法,一个是使用构造函数,一个是使用字面量。
如果是创建空字符串,则可以使用上面两种方法:

var str1=new String("");//构造函数
var str2="";//字面量
console.log("str1:",str1);
console.log("str2:",str2);

在这里插入图片描述

或许你还没有感受到两种方式的差别,但无妨。
构造函数构建的变量是引用类型的对象类型,字面量方式构建的变量是值类型的基本类型(String)

var str1=new String("");//构造函数
var str2="";//字面量
console.log("typeof str1:",typeof str1);
console.log("typeof str2:",typeof str2);

从结果上,可以很清楚地看见两种变量类型上的差别,

在这里插入图片描述
但是,由于我还没有进一步感受它们在使用上的细微差别,我只用到了判断类型上的技巧。

判断类型的技巧

区分

1、typeof

上文提到的typeof能够将这两种方式,区分开来,但是又不太足够。它没有将使用String构造函数构建的对象和其他构造函数创建的对象(如Set)区分开来。

2、instanceof

var str1=new String("");//构造函数
var str2="";//字面量
console.log("str1 instanceof String:",str1 instanceof String);
console.log("str2 instanceof String:",str2 instanceof String);

在这里插入图片描述
使用构造函数String创建的变量str1返回的是true,str2只是普通类型,连对象都不是,自然返回了false。由此就可以区分开来,还能将str1和其他的对象区分开来(毕竟不同构造函数创建的对象对应的构造函数都有所不同)。

共点

1、Object.prototype.toString.call

var str1=new String("");//构造函数
var str2="";//字面量
var num=123;
console.log("Object.prototype.toString.call(str1) === [object String];:",Object.prototype.toString.call(str1) === "[object String]");
console.log("Object.prototype.toString.call(str2) === [object String];:",Object.prototype.toString.call(str2) === "[object String]");
console.log("Object.prototype.toString.call(num) === [object String];:",Object.prototype.toString.call(num) === "[object String]");

在这里插入图片描述
这种方式能够将两种不同方式创建的字符串识别成同类型的东西,但又能够和如数字以外的其他类型 区别开来。

2、库函数

还有一种方式是使用库函数:_.isString,这个方式是我看博客发现的,但是我没有尝试过,所以只是列在这。

提供链接: 如何判断JS中一个变量是 string 类型


至此,结束。

如果你觉得这篇文章写的不错,多多点赞~收藏吧!

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

js中关于字符串的创建和判断类型 的相关文章

  • 设置特定div的字符集

    是否可以为特定的 div 分配字符集 这样你就可以在一页上拥有多个字符集 我目前正在通过 JS 将文本片段导入到我的网站 其中一些文本需要 UTF 8 字符集 为了确保我的文本正确显示在包含的每个页面 有时是外部站点 上 我将元标记强制添加
  • JS 按特定排序顺序排序

    我需要按特定顺序对数据进行排序 如下所示 const sortBy b a c e d const data a d e 我知道如何按升序 降序排序 console log data sort a b gt a gt b a d e con
  • 如何使用 vue-toastification

    我刚刚将在 vue 3 中创建的项目迁移到 nuxt 3 以前我使用了 vue toastification 模块 但现在我不知道如何正确导入它 我的代码使用这个模块 import useToast POSITION from vue to
  • 如何使用 javascript 创建一个 for 循环,返回一个月中剩余天数的新日期对象数组

    对于给定的日期 我需要返回一个数组 其中包含当月剩余的每一天的日期对象 我需要一个for循环创建new Date 对象设置为该月剩余的每一天 将它们添加到数组并返回该数组 我想出了代码来检索该月的剩余天数 但是由于某种原因我无法弄清楚循环
  • 无法安装组件:模板或渲染函数未定义。组件导入失败

    我正在尝试复制 vue 教程示例 在这里找到 https v3 vuejs org guide component basics html passing data to child components with props https
  • 选择容器中的最后一个单词

    我只是想知道是否有办法选择 DIV 中的最后一个单词 我认为没有任何明显的方法可以做到这一点 那么有什么解决方法吗 我不介意使用 CSS 或 Javascript 来实现这一点 提前致谢 div or no div 它归结为基本的字符串操作
  • 告诉 ember.js 对其模型的“id”使用不同的密钥

    我陷入了不应该回来的境地idAPI 端点中的字段 我需要告诉 ember 使用slug字段为 而不是id I tried DS RESTAdapter map App Post id key slug 虽然这对于App Post find
  • 了解 rxjs 中的背压 - 仅缓存 5 个等待上传的图像

    我正在开发一个节点项目 需要提交数千张图像进行处理 在将这些图像上传到处理服务器之前 需要调整它们的大小 因此我有一些类似的内容 imageList map image gt loadAndResizeImage merge 3 map i
  • javascript while循环在节点和浏览器中给出不同的结果

    我正在执行以下看似简单的代码 var number 0 while number lt 12 console log number number number 2 我在浏览器和 Node 中得到不同的结果 当我在 Firefox v 32
  • 使用Puppeteer拦截请求时如何获取原始编码响应大小?

    我使用此代码来记录在 Chrome 中加载页面时编码的响应大小 const puppeteer require puppeteer async function const browser await puppeteer launch co
  • onClick 在 p 标签上无法正常工作

    我想为每个绑定一个点击事件 p 但它似乎不能正常工作 当我运行脚本时 我立即收到三个警报 我只想在单击三个中的任何一个时获得它们 p p s 谁能告诉我我做错了什么 编辑 抱歉 这就是它的样子 HTML 应该是这样的 p p class s
  • 使 div 更大并在悬停时向上动画更大的部分

    当用户将鼠标悬停在 div 上时 我试图将 div 向上设置动画 我可以对 div 进行动画处理 使其变大 但动画是向下发生的 我试图将 div 的底部保持在同一位置 并平滑地向上增加 div 的大小 请参阅 jsfiddle 这里 htt
  • 锁定 contenteditable="true" div 中的元素

    我有一个用于用户输入的 contenteditable div 当单击按钮时 它会显示替换某些单词的选项 首先 它删除所有 html 并创建可以替换单词的 span 元素 这些词的标记不同 我面临一些问题 当直接在跨度之前或之后单击并键入文
  • JavaScript:发送 POST,重定向到响应

    我有一个带有 onclick 的图像 当单击事件触发时 我想发送 HTTP POST 并将 window location 重定向到 POST 的响应 我怎样才能做到这一点 只需将按钮绑定到表单元素的提交方法 重定向就会自然发生
  • Chrome 扩展 - 使用 javascript 定期运行并永久记录数据

    目前 我有一个脚本 当单击右上角托盘中的图像 仅适用于一个特定允许的网站 时 它会扫描 HTML 页面 然后输出一些值 此扫描和输出是单个 JS 文件中的函数 称为 checkData js 即使用户没有主动使用选项卡但它已打开 是否有可能
  • javascript 中的独立括号[重复]

    这个问题在这里已经有答案了 可能的重复 JavaScript 为什么使用匿名函数包装器 https stackoverflow com questions 1643321 javascript why the anonymous funct
  • Redux Spread 运算符与 Map

    我有一个数组中的对象状态 在我的 ReduxReducer 中 const initialState items id 1 dish General Chicken price 12 1 quantity 0 id 2 dish Chick
  • emberjs 对一条路线使用多个路径/url

    在 Ember 中我可以使用这个 App Router map function this route accomodations 因此 如果访问 accomodations 它将加载该视图 我还可以补充 App Router map fu
  • 将文本字段输入限制为仅数字

    我搜索过谷歌 但我能找到的所有解决方案都非常复杂和冗长 我需要的是将我正在进行的调查中的文本字段的输入限制为仅数字 最快 最干净的方法是什么 我使用的是严格的 HTML 4 01 和 ECMAScript 提前致谢 最快
  • 创建一个跨浏览器 mixin 进行转换:旋转

    我想为 sass 创建一个 mixin 它将对指定元素应用旋转 mixin 应采用一个参数 表示要应用的旋转度数 从 css3please com 我找到了一种使用 CSS 实现此功能的跨浏览器方法 box rotate moz trans

随机推荐

  • 网络安全基础知识面试题库

    1 基于路由器的攻击手段 1 1 源IP地址欺骗式攻击 入侵者从外部传输一个伪装成来自内部主机的数据包 数据包的IP是 内网的合法IP 对策 丢弃所有来自路由器外端口 却使用内部源地址的数据包 1 2 源路由攻击 入侵者让数据包循着一个不可
  • 毕业设计- 基于深度学习的小样本时间序列预测算法 - Attention

    目录 前言 课题背景与意义 课题实现 一 数据集 二 设计思路 三 相关代码示例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着准备考研 考公 考教资或者实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校
  • 毕业设计:基于卷积神经网络的验证码识别系统 机器视觉 人工智能

    目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 2 1 字符分割算法 2 2 深度学习 三 检测的实现 3 1 数据集 3 2 实验环境搭建 3 3 实验及结果分析 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实
  • 毕业设计:基于深度学习的微博谣言检测系统 人工智能

    目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 三 检测的实现 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有
  • 还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)

    快速入门指南 先看一下自动化标注的强大 简直医学图像处理的福音呀 不仅如此 任何区域都可以识别到 面对任意开集数据 都可以达到良好的效果 运行模式 目前 X AnyLabeling 支持两种运行方式 一种是下载源码直接运行 另一种是直接下载
  • 【毕业设计选题】复杂背景下的无人机(UVA)夜间目标检测系统 python 人工智能 深度学习

    前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大家顺利通过和节省时间
  • 无人机视角、多模态、模型剪枝、国产AI芯片部署

    无人机视角 多模态 模型剪枝 国产AI芯片部署是当前无人机技术领域的重要研究方向 其原理和应用价值在以下几个方面进行详细讲述 一 无人机视角 无人机视角是指在无人机上搭载摄像头等设备 通过航拍图像获取环境信息 并进行图像处理和分析 这种技术
  • 网络安全:绕过 MSF 的一次渗透测试

    这次渗透的主站是 一个 Discuz 3 4 的搭建 违法招 piao 网站 配置有宝塔 WAF 用 Discuz ML 3 X 的漏洞进行攻击 但是没有成功 发现主站外链会有一个发卡网 引导人们来这充值 是 某某发卡网 而且域名指向也是主
  • 毕业设计:基于卷积神经网络的图像分类系统 python人工智能

    目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 2 1 卷积神经网络 2 2 SVM算法 三 检测的实现 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力
  • 台积电再被坑,2纳米光刻机优先给Intel和三星,美国太霸道了

    外媒指出今年ASML的10台2纳米光刻机分配已经基本确定了 Intel拿到6台 三星获得3台 台积电只能得到一台 考虑到美国对ASML的强大影响力 外媒的这些消息应该有较高的可信性 Intel在先进工艺制程方面 自从2014年量产14纳米之
  • iPhone成中国市场2023年最畅销手机,但国产手机已雄起

    苹果首次夺下国内手机市场年度第一名 iPhone成中国市场最畅销的手机 这个话题突然热起来 其实iPhone一直都是中国市场最畅销的手机啊 不过2023年Q4显示出国产手机已经雄起啦 苹果在2023年首次夺下中国手机市场年度第一名 这对苹果
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • 华为重夺第一,竞争对手就降价,这真的是巧合么?

    2024年Q4某国产手机品牌重夺国产手机品牌第一名 不过2024年开年第一周 国内手机市场的格局再次大变 华为夺下了第一名 不仅超越众多国产手机品牌 还超过了苹果 给国内手机市场带来震动 首先降价的是苹果 苹果的iPhone15自去年上市以
  • 回乡翻新父辈房子成部分年轻人的选择,低成本的田园生活

    独家首发 所谓城市套路深 我要回农村 这个或许只是一部分人的调侃 然而却有一部分年轻人做出这样的选择 不过他们又不希望花费太大成本 如此一些年轻人就选择翻新父母留下的旧房子 对于这部分年轻人来说 其实这也是一种不错的选择 城市里生活压力大
  • 性能大减80%,英伟达芯片在华“遇冷”,我方霸气回应:不强求

    中国这么大一块市场 谁看了不眼馋 在科技实力大于一切的今天 高端芯片的重要性不言而喻 作为半导体产业发展过程中不可或缺的一环 芯片技术也一直是我国技术发展的一大 心病 在美西方等国的联手压制下 我国芯片技术发展处处受阻 至今也未能在高端芯片
  • 作物叶片病害识别系统

    介绍 由于植物疾病的检测在农业领域中起着重要作用 因为植物疾病是相当自然的现象 如果在这个领域不采取适当的护理措施 就会对植物产生严重影响 进而影响相关产品的质量 数量或产量 植物疾病会引起疾病的周期性爆发 导致大规模死亡 这些问题需要在初
  • 京东001号快递员,刘强东给的买房承诺,仅4年时间就实现了

    京东001号快递员金宜财正式退休 不知是有意还是无意 他成为了互联网的热搜 不过大众更关心的是金宜财当年得到刘强东的承诺 只要干几年就能买房 那么刘强东的承诺有没有实现 又是如何实现的呢 据悉当年京东刚开始推京东快递的时候 京东还没什么名气
  • MySQL 核心模块揭秘 | 03 期 | 我是一个事务,请给我一个对象

    每个事务都有一个对象 这篇文章我们聊聊 事务的对象从哪里来 要到哪里去 作者 操盛春 爱可生技术专家 公众号 一树一溪 作者 专注于研究 MySQL 和 OceanBase 源码 爱可生开源社区出品 原创内容未经授权不得随意使用 转载请联系
  • 时隔9年,小米终于重回国产手机第一名,但最大赢家是苹果

    2023年Q4的数据显示 国内手机市场前两名分别是苹果 小米 这也意味着小米终于在国内市场重获第一名 对小米来说这是意外之喜 而小米创始人兼CEO雷军曾经喊出的口号也终于因此实现 2018年雷军曾经喊出用10个季度重夺中国手机市场第一名 不
  • js中关于字符串的创建和判断类型

    文章目录 创建方法 判断类型的技巧 区分 1 typeof 2 instanceof 共点 1 Object prototype toSt