Javascript字符串判别相等


title: Javascript字符串判别相等
date: 2016-11-24 20:56:37
categories: 前端开发
tags: JavaScript


JavaScript中两个字符串类型,值完全相同,但是判断的时候一直不相等

  好久没有开发Web了,今天需要做一个系统,今天在前端上碰到了一个问题。两个字符串用typeof,value等判断一模一样,但是就是"=="的时候报两者不想等

开发问题

  好久没用开发系统,这次碰巧赶上要用hive做一个系统。于是就选择用python的Django来进行开发,但是在前端碰到了一个问题。要说在前端自己还是挺有经验的,这次居然懵逼了。。。。。。

  事情是这样的,我从后台的hive数据仓库中拉取数据,然后希望在前台封装成json,然后交给echarts来绘图。流程很清楚,但是在js判断两个字符串相等的时候,出了问题。两个字符串从类型和值上开启来一模一样啊!最后找到了原因,居然是因为我在数据仓库中的数据可能尾部有一些特殊的空白字符,导致二者比较的时候不相等。让这个问题现出原形的是JavaScript中的encodeURIComponent,通过这个函数来进行打印二者的编码后的结果完全不一样,哎,这就是搞什么都要搞到根子上啊,不然非常容易被误导啊!!!!

    alert(encodeURIComponent(a));

encodeURIComponent() 函数

  

  • 定义和用法
    encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。
  • 语法
    encodeURIComponent(URIstring)
  • 参数描述
    URIstring 必需。一个字符串,含有 URI 组件或其他要编码的文本。
  • 返回值
    URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。
  • 说明
    该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
    其他字符(比如 :;/?:@&=+$,# 这些用于分隔 URI 组件的标点符号),都是由一个或多个十六进制的转义序列替换的。
  • 提示和注释
    提示:请注意 encodeURIComponent() 函数 与 encodeURI() 函数的区别之处,前者假定它的参数是 URI 的一部分(比如协议、主机名、路径或查询字符串)。因此 encodeURIComponent() 函数将转义用于分隔 URI 各个部分的标点符号。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,270评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 打动我的地方 命运论,命运就像下雨时晒在外面的衣服被淋湿,是有因有果的,而如何去解决这个因果呢?就像漫步在雨中去收...
    大熊贝贝阅读 253评论 0 0
  • 一直记得很多年前发生的一件事,不是因为开心或难过,这么多年让我一直记得的原因只是……愧疚。 小时候,大...
    meme心瑶阅读 432评论 0 0
  • 时间静悄悄的溜去,2016即将说再见,2017会是我们的新的开始! 那么在这个交界处,你是否还在憧憬高中...
    畫凉思阅读 248评论 0 0