zoukankan      html  css  js  c++  java
  • 【转】小心转义符号 JS字符串字面量与字符串的值

            定义一个字符串:


       var a = 'AAmwAAo3LAwtAAjSGABnAgI\/CAw+AgrFBASy';


            接着我们在input框输入同样的字符串,再和这个在js中定义的字符串作比较,结果会怎样?


           


            比较的结果是false,问题出在哪里呢?

            问题出在那个转义字符 “\” 上。根据ECMAScript规范,字符串字面量所表示的字符串的值(string value,简称SV)是通过字面量中不同部分的字符值(character value,简称CV)描述的。其中:\ EscapeSequence 的CV就是EscapeSequence本身,那么最终SV就等于这个CV,之前那个字符串用语法形式表示就是:

            SourceCharacter but not single-quote ' or backslash \ or LineTerminator \ EscapeSequence

            最终,这个字面量的所表示的字符串的值就是:AAmwAAo3LAwtAAjSGABnAgI/CAw+AgrFBASy

            从input框读取的是字符串的值而非字面量,所以导致比较结果为false,这个值等价于字符串字面量:AAmwAAo3LAwtAAjSGABnAgI\\/CAw+AgrFBASy

            相关内容可参考ECMAScript Language Specification Edition 3 Final的7.8.4节

  • 相关阅读:
    https 双向证书
    MapReduce概述,原理,执行过程
    rpc,客户端与NameNode通信的过程
    小文件的解决方案
    hadoop hdfs的java操作
    HDFS的shell操作
    HDFS体系结构:(Distributed File System)
    hadoop-1.1.2集群搭建
    Hadoop入门概念
    移动端css知识总结--字体,毛玻璃效果,input和disabled
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4400161.html
Copyright © 2011-2022 走看看