美文网首页
Javascript字符串判别相等

Javascript字符串判别相等

作者: 数据挖掘小菜 | 来源:发表于2017-11-21 22:59 被阅读0次

    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 各个部分的标点符号。

    相关文章

      网友评论

          本文标题:Javascript字符串判别相等

          本文链接:https://www.haomeiwen.com/subject/zjpgvxtx.html