转义字符,编程萌新应该都被这个概念困扰过。理解这个概念,需要抓住几个要点:
1.转义字符的目的。
(1)为了解决编程语言中的字符含义冲突。
(2)为了表示一些本来不能用字符表示的含义。
- 冲突的表现
编程语言元字符与字符串数据的冲突。
每种编程语言都有自己的元字符,包括关键字、运算符等等。以javascript为例,逗号、分号、“var”这些都是语言的元字符。
每种语言都会规定自己的数据类型的字面表示方法。比如,js中:
//这些字面值代表Number类型
123
1.1
//数组
var a = [1,2,3];
//对象
var b ={ name:'eleorc';age'18'};
关键点,编程语言中都少不了一种叫做字符串的数据类型。
var c = 'hello';
var d = "world";
可以看到,js中,字符串这种数据类型的表达,需要使用成对的单引号或者双引号字符。也就是,当在js代码中,出现成对的单引号或者双引号,js解释器会把中间的字面值作为字符串数据处理。
那么问题来了,如果字符串数据中,需要表达单引号或者双引号这个字符,改怎么办呢?
这个问题可以概括为:在字符串数据中需要表达限定字符串边界的元字符,改怎么办?
我们不能简单使用这个字符的字面值,因为这个字符已经被编程语言赋予了含义(限定字符串边界)。如果简单的在两个单引号中,在写一个单引号,那么js解释器该如何匹配字符边界呢?
//存在逻辑混乱的写法,也许人类可以看懂,但解释器不能。
var s = 'I'm OK;'
因此,需要用另外的字面值来代表字符串限定符号。
反斜线,在字符串中,被赋予了特殊的含义。
请注意转义字符这个概念,是有前提条件的。
“在字符串类型的数据的字面值中”才有必要使用转义字符。
剩下的就是具体写法了。
var s = 'I\'m ok!';