小编Lyn*_*ynn的帖子

为什么false ++在Firefox中产生SyntaxError但在Chrome中产生ReferenceError?

在尝试调试一些有问题的JavaScript时,我发现在源文件中看起来像一个明显错误的行:

false++;
Run Code Online (Sandbox Code Playgroud)

我不明白的是为什么这个语句在所有浏览器中表现不同.

  • 在Chrome中,我收到了一个ReferenceError,并且没有运行整个脚本.
  • 在Firefox中,我得到一个SyntaxError,并且没有运行整个脚本.
  • 在Internet Explorer中,我收到一个SyntaxError,该脚本只运行到发生错误的行.

设计是否允许不同的浏览器以不同的方式处理相同的破解JavaScript?

我知道错误是什么以及如何解决它,但至少不应该规范的错误类型?

javascript specifications syntax-error referenceerror

8
推荐指数
1
解决办法
89
查看次数

SVG多边形,点坐标为百分比

我可以在svg中使用矩形坐标中的百分比值,但不能在多边形中使用百分比值.有解决方法吗?

我的意思是,这没关系:

svg {
  background: #ADF;
  width: 300px;
  height: 300px
}
rect {
  stroke: black;
  fill: #8FF;
}
Run Code Online (Sandbox Code Playgroud)
<svg>
  <rect x="10%" y="10%" width="80%" height="70%"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

但这不起作用:

svg {
  background: #ADF;
  width: 300px;
  height: 300px
}
polygon {
  stroke: black;
  fill: #8FF;
}
Run Code Online (Sandbox Code Playgroud)
<svg>
  <polygon points="20%,10% 10%,90% 80%,90%"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

Chrome抱怨道

错误:属性点:预期数字,"20%,10%10%,90%80 ......".

有没有办法可以用百分比坐标绘制填充多边形?

html css svg polygon

4
推荐指数
1
解决办法
3820
查看次数

如何在严格模式下定义[this]?

当我在Chrome中运行此代码时,我得到一个未捕获的TypeError:无法读取未定义的属性'concat'

function _log()
{
    'use strict'

    [this].concat(Array.from(arguments)).forEach(
        function (obj) { console.log(obj) }
    )
}

_log('foo', 'bar');
Run Code Online (Sandbox Code Playgroud)

我不明白为什么会这样.怎么可以[this]不定义?即使this未定义,[this]仍然应该是一个数组,不应该吗?

一个有趣的细节是,当我use strict从函数中删除行时,错误消失,代码按预期运行,将函数上下文和参数记录在一个新行上.

this在严格模式下使用关键字可能有些特别之处我不知道吗?

谢谢.

javascript this strict-mode

3
推荐指数
1
解决办法
110
查看次数

isPossibleNumber vs. isValidNumber

我正在使用Google的libphonenumber库来验证服务器端的电话号码,我注意到PhoneNumberUtil有两种方法可以做到这一点:isPossibleNumberisValidNumber.它们之间有什么区别,我应该何时使用一个而不是另一个?

java phone-number libphonenumber phonenumberutils

1
推荐指数
1
解决办法
1773
查看次数