html标签拼接时,为什么有时候需要加转义字符
<span id="zz"></span>
<span id="zz2"></span>
<script>
var a = {name: 'czq'};
var newa = JSON.stringify(a).replace(/"/g,'"');
console.log(JSON.stringify(a));
console.log(newa);
var str = '<a onclick="ceshizz(\''+newa+'\')">测试</a>';
var str2 = '<a onclick="ceshizz('+newa+')">测试</a>';
document.getElementById('zz').innerHTML = str;
document.getElementById('zz2').innerHTML = str2;
function ceshizz(param) {
console.log(param);
console.log(JSON.parse(param));
</script>
字符串拼接后的标签,方法传参时如果参数是字符串(或者是对象转换成字符串)编译后都会去掉字符串,本来是字符串的对象也会转换类型为对象。如果你希望编译后的传参依旧是字符串的形式可以加上转义字符\'。这样编译后会把 ' 带上,正常情况下编译后 ' 是不展示的。通过转义字符的使用编译后 ' 仍然存在使参数变成字符串的形式。详情请看。
另外
<span id="zz"></span>
<script>
var b = 'abc';