繁体   English   中英

Javascript全局变量未定义的移动Safari Android工作正常

[英]Javascript global variable undefined mobile safari Android works fine

好的,所以这让我很难过,希望你们中的一个人可以帮助我。 所以,我有一个使用电容器构建的应用程序。 在我的应用程序中,我有全局 JS 变量,例如:

//globals 
var isCheckin = "";
var isUser = ""; 

ETC...

在 android 上,这工作得很好(以前,在 IOS 上也可以工作)。 但是现在,当我在 IOS 上构建它并运行应用程序时,我的if语句会出现以下内容:

if(isCheckin !== "") {} 

不再工作,因为isCheckinundefined的形式返回。

我正在做一些搜索并遇到“吊装”,虽然我猜可能是这样,为什么会:

  1. Android全球都没有问题?
  2. IOS 以前可以工作,但现在返回为undefined

事实上,应用商店中的应用程序的当前版本仍然可以正常工作,但是当全局变量似乎被 safari 忽略时,新版本就会出现这个问题。

应该定义您对全局变量的定义。

让我们看看第一个例子:

 const myFunction = (() => { var foo = 'bar'; }); myFunction(); console.log(foo);

该变量正在函数范围内定义。 即在该范围之外它将是未定义的。

您可以做的是从中删除var 看:

 const myFunction = (() => { foo = 'bar'; }); myFunction(); console.log(foo);

现在变量是全局的,也可以在函数外使用。 但是如果你设置"use stricht" ,变量将是未定义的。 看:

 "use strict" /* global console */ const myFunction = (() => { foo = 'bar'; }); myFunction(); console.log(foo);

因此,在范围外获取变量值的最简洁方法是使用let 看:

 "use strict" /* global console */ let foo; const myFunction = (() => { foo = 'bar'; }); myFunction(); console.log(foo);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM