字符串转义问题

我一直以为,console 能保证所见即所得,所以我一向喜欢用console完成简单的调试,然而本周我被坑了,其原因就是字符串转义。

先说为什么需要字符串转义,简单的说就是在某些特殊情况下(比如说字符串里套字符串,比如说正则表达式中用一些有着特定含义的字符),然而转义的时候,你打印出来的结果和你输入进去那个,多半不是同一个,我们可以看一个例子

可以很清楚的看到,我输入的时候有两个反斜杠,而输出时候就没了,当我直接用输出的值的时候,必然会直接报错。

而这个变量可以被JSON解析,也就是说,当字符串被JSON化的时候,也会出现转义的情况

你可能要说,没有反斜杠啊?那是不是说明没有转义?

答案还是转义了,因为我们可以看到"出现了四个,但是第1个和第2个却不成对,这是因为第2个被转义了

那为什么没有看到反斜杠呢?

还是之前那个问题,console的时候字符串转义已经生效了,\"变成了一个单纯的字符",而不是具有语法意义的",所以我们没有看到"。从某种程度上讲,console确实是把反斜杠吃掉了。

 

所以要警惕这一点,console并不能保证所见即所得,至少设计转义的时候是这样的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值