const str = "hi \"Tom\"";
console.log(str[3]==='"'); // true
console.log(str.charCodeAt(3)==='"'.charCodeAt(0)); // true
无论使用三等号对比还是使用ASCII码对比原始字符串中的“\"”
与“"”
都相等;
那我究竟该怎么判断字符串中的引号究竟是\"
还是"
呢?
const str = "hi \"Tom\"";
console.log(str[3]==='"'); // true
console.log(str.charCodeAt(3)==='"'.charCodeAt(0)); // true
无论使用三等号对比还是使用ASCII码对比原始字符串中的“\"”
与“"”
都相等;
那我究竟该怎么判断字符串中的引号究竟是\"
还是"
呢?
这个其实是理解错误,转义字符其实只在输入时起作用(存在与代码中,或者交互信息输入过程中——比如有时从文本输入框中获取信息时),输入后存储的实质是没有转义符的,所以你所谓的3等号对比肯定是相同的。
而在输入时是有严格规定的,相应的规定是
'"'
中双引号是可以不用转义的(加转义符也没有问题)'\''
才是一个完整的信息输入,'\'
是会报错的\
必须是'\\'
或者"\\"
的形式16 回答2.8k 阅读✓ 已解决
6 回答4.2k 阅读✓ 已解决
14 回答5.5k 阅读
7 回答1.8k 阅读
14 回答2k 阅读
3 回答987 阅读✓ 已解决
6 回答1.1k 阅读✓ 已解决
单个反斜杠无实际意义,在字符串中表示转义符。