JS中判断字符串存在和非空的方法

 更新时间:2018年09月12日 08:23:42   投稿:laozhang  
这篇文章给大家分享了JS中判断字符串存在和非空的方法以及相关注意点总结,有兴趣的朋友们参考下。

看到这个题目你是怎么想的呢?这个很简单啊,typeof 一下,再判断length。

if(typeof unknownVariable ==='string' && unknownVariable.length){
   ...
 }

搞定了吗?

如果这个字符串是用new String() 创建的会如何呢?typeof 这个未知变量肯定是 object。你会怎么办?
你肯定还得先判断类型,typeof unknownVariable==='object' ?但你得想还有一个null变量的 typeof 值也是 object。那是不是还得 && unknownVariable 一下?现在就是一个非空对象了,接着要不要判断一下length?应该不用了。但最后 typeof 是 object 的不一定是字符串对象啊,可以是别的对象,如数组、json对象、new 出来的别的对象等等。要怎么办呢?

这就要上一个很少用到但有用的方法了:valueOf。valueOf 会以变量原始类型的形式进行输出。

let str1="test"
  let str2=new String('test2')
  let arr1=[1,2,3]
  let fn1=function(){
    console.log('this is a function')
  }
  let obj1={
    name:'gpd'
  }
  let obj2=new Object()
  obj2.name='gpd' 
  str1.valueOf() // "test"
  str2.valueOf() //"test2"
  arr1.valueOf() //[1,2,3]
  fn1.valueOf() //fn1(){}
  obj1.valueOf() // {name:"gpd"}
  obj2.valueOf() // {name:"gpd"}

所以,无论你是字符串字面量还是new String 得到的一个字符串对象,它的valueOf值都是一个字符串字面量。然后,它的typeof 值都是 string 。

所以最后的判断的是

if(typeof unknownVariable !=undefined 
  && unknownVariable 
  && typeof unknowVariable.valueOf() === "string")
  {
    ...
  }

相关文章

  • js对象的复制继承实例

    js对象的复制继承实例

    这篇文章主要介绍了js对象的复制继承用法,以一个较为简单的实例分析了js对象复制继承的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-01-01
  • 教你用JS获取Headers头部信息

    教你用JS获取Headers头部信息

    这篇文章主要给大家介绍了关于用JS获取Headers头部信息的相关资料,头部信息是在JavaScript中进行网络请求时常用的操作,Headers 头部信息包含了请求或响应的元数据,需要的朋友可以参考下
    2023-09-09
  • 微信小程序实现竖排slider效果

    微信小程序实现竖排slider效果

    这篇文章主要为大家详细介绍了微信小程序实现竖排slider效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Function.prototype.bind用法示例

    Function.prototype.bind用法示例

    想必大家对Function.prototype.bind并不陌生吧,下面为大家介绍下它的简单调用及DOM调用,感兴趣的朋友可以参考下
    2013-09-09
  • 深入理解JavaScript 变量对象

    深入理解JavaScript 变量对象

    变量对象是与执行上下文相关的数据作用域,存储了在上下文中定义的变量和函数声明,本文主要介绍了JavaScript 变量对象,具有一定的参考价值,感兴趣的可以了解一下
    2022-05-05
  • JS实现点击拉拽轮播图pc端移动端适配

    JS实现点击拉拽轮播图pc端移动端适配

    本文通过实例代码给大家介绍了JS点击拉拽轮播图pc端移动端适配 ,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-09-09
  • JavaScript 计算图片加载数量的代码

    JavaScript 计算图片加载数量的代码

    先定义一个图片的数组,然后通过image的onload事件来计算,注意,onload在ie和火狐有所不同。
    2011-01-01
  • 微信小程序使用wx.navigateTo路由跳转层级限制问题小结

    微信小程序使用wx.navigateTo路由跳转层级限制问题小结

    在微信小程序开发中,wx.navigateTo和wx.redirectTo是两种页面跳转方式,wx.navigateTo允许跳转到新页面并保留当前页面,适合需要返回的场景,但受页面栈10层限制,wx.redirectTo则关闭当前页面后跳转,本文介绍微信小程序使用wx.navigateTo路由跳转层级限制问题
    2024-10-10
  • TypeScript枚举的基础知识及实例

    TypeScript枚举的基础知识及实例

    使用枚举我们可以定义一些带名字的常量,使用枚举可以清晰地表达意图或创建一组有区别的用例,下面这篇文章主要给大家介绍了关于TypeScript枚举的基础知识及实际用例,需要的朋友可以参考下
    2021-10-10
  • js LZ77算法的实现代码

    js LZ77算法的实现代码

    JS操作二进制很麻烦,而且一直没有一个好的无损压缩工具来实现纯文本的压缩。
    2010-04-04

最新评论