gpt4 book ai didi

javascript - 为什么我的 JavaScript 在 Safari 上的严格模式下不能正常工作?

转载 作者:行者123 更新时间:2023-11-28 18:53:21 25 4
gpt4 key购买 nike

我建立了一个使用一些简单 JavaScript 的网站。经过一些测试后,我发现我的 JavaScript 在 iOS 设备上的表现与我可以测试的所有其他设备上的表现非常不同。

经过几个小时的反复试验,我发现意外的行为只发生在严格模式下,但是很难进一步解决这个问题,因为我的苹果开发软件/硬件有限,测试。

为什么我的代码不能在严格模式下工作,而且只能在某些(尤其是 Apple)设备上工作?

最佳答案

可能的问题

您的问题可能是您在启用严格模式的情况下进行了 const 声明。


可能的解决方案

如果是这种情况,并且您想继续使用严格模式,一种解决方案是使用 var 而不是 const,并且更小心地对待变量作为常量。


关于这个问题的更多信息

如果没有 OS X 计算机,实际上很难调试这个问题,因为您无法使用 iOS Safari 的远程控制台“Web Inspector”。

然而,according to caniuse ,对于当前版本的 Safari 和 iOS Safari(截至撰写本文时分别为 9.1 和 9.3)const 是:

Only recognized when NOT in strict mode

您可以使用以下示例 (or this JSFiddle) 自行测试。这段代码在 Ubuntu 和 Android 上使用 Chrome 和 Firefox 时对我来说都按预期工作,但在 Firefox for iOS 或 iOS Safari 上不起作用。

HTML


<pre></pre>
<form>
<input type="submit">
</form>

JS


"use strict";

var form = document.querySelector("form");
var info = document.querySelector("pre");

// This const declaration in conjunction with strict mode will
// cause this script not to work on iOS devices
const _MEANINGLESS = 0;

form.addEventListener("submit", function(event) {
event.preventDefault();
info.textContent = "Submit event captured.\n";
});

关于javascript - 为什么我的 JavaScript 在 Safari 上的严格模式下不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37228892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com