为什么我的字符串不是字符串?

Dou*_*Fir 1 javascript

在这里寻求一些厚颜无耻的帮助.一直盯着这个,并且不明白为什么整个事情不是保持一个字符串:

var str = 
    '<script type="cats/conversion">
        {"type":"REGISTER",
         "params":{"partner_conversion_id":"' + {{sku}} + '",
         "f":"' + {{accountHolderName}} + '",
         "e":"' + {{dl userid}} + '"}
        } 
    <\/script>';
Run Code Online (Sandbox Code Playgroud)

我曾经期望str的所有内容都是字符串,但我的文本编辑器告诉我它不是.我在哪里打'或'?

救命!!

eli*_*ide 5

您不能(安全合理地)在JavaScript中执行多行字符串文字.您必须使用串联(+运算符)来构建它们.你可以这样做:

var str = '<script type="cats/conversion">' +
    '{"type":"REGISTER",' +
        '"params":{"partner_conversion_id":"' + {{sku}} + '",' +
        '"f":"' + {{accountHolderName}} + '",' +
        '"e":"' + {{dl userid}} + '"}' +
'}' +
'<\/script>';
Run Code Online (Sandbox Code Playgroud)

注意:我不知道{{sku}}脚本中的和占位符是什么.我认为这些是用于某些模板系统的.它们并非如所写的有效语法.

编辑:从技术上讲,正如亚历克斯在他的回答中指出的那样,你可以通过转义换行来做多行文字\.然而,正如亚历克斯所说,这是"被认为是可怕的做法",并且由于种种原因而容易被打破.不要这样做!