js 标签字符串中的转义字符使用

js 标签字符串中的转义字符使用

本文主要内容

铺垫

个人对字符串使用习惯

  1. 在 es6 以前, js 中字符串使用单引号 , 比如: str = '<a href="javascript:;">clickMe</a>'
  2. html 中属性值使用双引号

js 怎么处理 零开头的数值类型

首先会 判断是否为 8进制类型数值,如果各进制位上没有大于8 的数字,则当做八进制数值对待, 否则作为 10进制数值对待,即使是10进制数字,在处理过程中还是会把开头 零去掉

如:


num = 032;
console.log(num)
VM77:1 26

var num2 = 08769
undefined
console.log(num2);
VM85:1 8769

1. 标签字符串包裹,报错问题

js 标签字符串中,行内属性值中的字符串转义字符要和标签字符串两端保持一致,不然会报错


 // app.innerHTML = "<a href='javascript:;' onclick= 'clickMe(\'hello\')' >clickMe!</a>";
 app.innerHTML = '<a href="javascript:;" onclick="clickMe(\"01345\")" >clickMe!</a>';

一般有下述错误的时候,需要考虑转义字符串的问题

这里写图片描述

2. 0 开头的字符串数字拼接问题

(单双引号都是一样的结果)字符串拼接: 直接去除中间拼接的字符串符号

以下两种拼接都会遇到 0消失问题:


var str = "01345"; // 对于这个原本的字符串数字就变成了 八进制数值类型
var singleQoute = '01346';
app.innerHTML = '<a href="javascript:;" onclick="clickMe('+ str +')" >clickMe!</a>';
        // app.innerHTML = '<a href="javascript:;" onclick="clickMe('+ singleQoute +')" >clickMe!</a>';

这里写图片描述

解决方案: 在零开头的字符串数字两侧拼接 “单引号”转义字符


app.innerHTML = '<a href="javascript:;" onclick="clickMe(\''+ str +'\')" >clickMe!</a>';

这里写图片描述

demo.html 文件


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>js生成html 转义字符问题(单双引号问题)</title>
</head>
<body>
    <div id="app"></div>
    <script>
        var app = document.getElementById('app');
        // 第一种: js 标签字符串中,行内属性值中的字符串转义字符要和标签字符串
        //两端保持一致,不然会报错
        // app.innerHTML = "<a href='javascript:;' onclick= 'clickMe(\'hello\')' >clickMe!</a>";
        // app.innerHTML = '<a href="javascript:;" onclick="clickMe(\"01345\")" >clickMe!</a>';
        // app.innerHTML = "<a href='javascript:;' onclick= 'clickMe(\"01345\")' >clickMe!</a>";
        // app.innerHTML = "<a href='javascript:;' onclick= 'clickMe(\'01345\')' >clickMe!</a>";

        // 第二种: (单双引号都是一样的结果)字符串拼接: 直接去除中间拼接的字符串符号
        var str = "01345"; // 对于这个原本的字符串数字就变成了 八进制数值类型
        var singleQoute = '01346';
        // app.innerHTML = '<a href="javascript:;" onclick="clickMe('+ str +')" >clickMe!</a>';
        // app.innerHTML = '<a href="javascript:;" onclick="clickMe('+ singleQoute +')" >clickMe!</a>';


        // 第三种: 正确写法
        // app.innerHTML = '<a href="javascript:;" onclick="clickMe(\''+ str +'\')" >clickMe!</a>';


        function clickMe (value) {
            console.log(typeof value);
            console.log('value---', value);
        }
    </script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/palmer_kai/article/details/79879806