严格模式下不允许使用八进制文字

Posted

技术标签:

【中文标题】严格模式下不允许使用八进制文字【英文标题】:Octal literals are not allowed in strict mode 【发布时间】:2016-08-21 02:29:03 【问题描述】:

我正在使用 Angular 2。

当我在 SCSS 文件中使用它时,它运行良好。

.text::after 
  content: "\00a0\00a0";

但是,当我将它移入时

styles: [``]

它显示:

Uncaught SyntaxError: Octal literals are not allowed in strict mode.

我知道styles: [``] 中的代码必须是 CSS 代码。

我试过了

styles: [`
    .text::after 
      content: "  ";
    
`]

然后屏幕直接显示  。怎么写正确?

【问题讨论】:

【参考方案1】:

\00a0的值有问题,因为不是八进制数(八进制字符为0-7),而是十六进制数,所以用这个:

.text::after 
  content: "\x00a0\x00a0";

【讨论】:

【参考方案2】:

或者你可以在\之前添加u(unicode)

  .text::after 
    content: "\u00a0\u00a0"
  

【讨论】:

【参考方案3】:

你需要逃避它

.text::after 
  content: "\\00a0\\00a0";  // now it's just a simple plain string


"use strict" 是 javascript 1.8.5(ECMAScript 版本 5)中引入的新功能。

其中,

不允许使用八进制数字文字 不允许使用转义字符 see more...

【讨论】:

W3schools 因虚假信息和不良做法而臭名昭著,请链接到 Mozilla MDN developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

以上是关于严格模式下不允许使用八进制文字的主要内容,如果未能解决你的问题,请参考以下文章

严格模式下不允许对象文字中的重复数据属性

Node JS readFileSync严格模式下不允许八进制转义序列

AngularJS ie 11 中严格模式下不允许对只读属性赋值

strict 模式下不允许一个属性有多个定义

Hive优化:严格模式

vb .net,涉及严格模式的javascript问题