gpt4 book ai didi

javascript - 'media' 是 Android 浏览器 javascript 中的保留关键字吗?

转载 作者:行者123 更新时间:2023-11-29 22:13:29 25 4
gpt4 key购买 nike

我很难调试在 Firefox 和 Chromium 中运行良好但在 Android 浏览器中运行良好的 javascript。

最后,我意识到问题的发生是因为我使用了一个名为 media 的变量(average 的葡萄牙语单词)。

media 更改为media_calculada 后,问题消失了。

检查这个例子:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script type="text/javascript">
function debug(msg) {
$('#debug').val($('#debug').val() + '\n' + msg);
}
$(document).ready(function(){
media = 'simple string';
othervar = 'simple string';
debug(media);
debug(othervar);
});
</script>
</head>
<body>
<textarea id="debug"></textarea>
</body>
</html>

该示例页面为每个浏览器生成以下输出:

Ubuntu 火狐:

simple string
simple string

安卓火狐:

simple string
simple string

Android 2.3.7 原生浏览器:

[ object Media ]
simple string

可以清楚的看到,这个问题只发生在Android原生浏览器中。

我用谷歌搜索看是否可以找到任何相关信息,但我没有。 (主要是因为媒体是一个被广泛使用的词)。

那么,我的问题是:

media是Android浏览器的保留关键字吗?

最佳答案

您误诊了您的问题。您实际看到的是全局对象的媒体属性。

当您尝试访问某个变量(例如 media)时,JavaScript 将查找作用域链,尝试为它找到声明。如果找不到,它将尝试在全局对象上创建一个属性。

但是,不能保证这样的属性是可写的。显然,在您的情况下,全局对象的 media 属性不是。

你应该做的是声明你的变量:

var media = 'simple string';
var othervar = 'simple string';

如果 media 是保留关键字,您会收到语法错误。保留关键字不能用作标识符(例如变量名、函数名和其他一些东西)。

关于javascript - 'media' 是 Android 浏览器 javascript 中的保留关键字吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16751705/

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