欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

javascript报错SyntaxError:malformedhexadecimalcharacterescapesequence的解决办法

程序员文章站 2022-06-13 18:46:12
今天遇到个很奇葩的问题,是javascript的问题! alert("\xhello"); 这行代码,不知道怎么的就一直报错!报错提示信息syntaxerror: malfo...

今天遇到个很奇葩的问题,是javascript的问题!

alert("\xhello");

这行代码,不知道怎么的就一直报错!报错提示信息syntaxerror: malformed hexadecimal character escape sequence

看下面的截图!

javascript报错SyntaxError:malformedhexadecimalcharacterescapesequence的解决办法

具体为什么会导致报错,我一直不太明白,如果有知道的高手请不吝赐教!网上这篇文章提到了这个问题

我在网上找了下资料,这里有一篇文章链接也可以看这里

以下是网上帖子的原文,

莫名其妙的 javascript 字符串换行,莫名其妙的 javascript报错

今儿个看蓝色理想的帖子,说到一个字符串换行的问题。通常如果在代码中存储 html 代码片段,会使用加号连接字符串的做法。

当然这样做会稍微麻烦点,于是有了以下这个生僻的方法:

var foo = 'xxx\
xxx';
alert(foo)

结果弹的是:

xxxxxx

再来加几个空格缩进看看:

var foo = 'xxx\
    xxx';
alert(foo)

结果弹的是:

xxx    xxx

那如果不折行呢?

var foo = 'xxx\xxx';
alert(foo)

结果报语法错误了:

syntaxerror: malformed hexadecimal character escape sequence

事实上这个杠属 javascript 转义字符,使用 \ + 回车 相当于将字符串中的回车符转义,所以弹出的还是连缀的字符串。

考虑到 js 代码部署时通常采用压缩,使用 \ 太危险,慎用。

字符串换行建议和常用的几种方法:

1、加号连接;

2、数据逐行 push,最终 join;

3、使用 script 标签存储 html 片段