Javascript 什么';这两者之间的区别是什么<;输入类型=";“隐藏的”&燃气轮机;和全局JS变量

Javascript 什么';这两者之间的区别是什么<;输入类型=";“隐藏的”&燃气轮机;和全局JS变量,javascript,jquery,html,Javascript,Jquery,Html,在我们的代码库中,我们都有它们,我不知道什么时候使用它们 在的情况下,我们以以下方式写入/读取值$(“#someFlag”).val('1')和$(“#someFlag”).val()=“1” 为什么不简单地将全局变量添加到JavaScript文件中呢 var someFlag2; ... someFlag2 = '1'; someFlag2 == '1' 这些方法之间有什么不同吗?我的想法有一个不同 在发布表单时,您将能够获取隐藏字段的值,作为请求变量的一部分,但如果是全局javascrip

在我们的代码库中,我们都有它们,我不知道什么时候使用它们

的情况下,我们以以下方式写入/读取值
$(“#someFlag”).val('1')
$(“#someFlag”).val()=“1”

为什么不简单地将全局变量添加到JavaScript文件中呢

var someFlag2;
...
someFlag2 = '1';
someFlag2 == '1'

这些方法之间有什么不同吗?

我的想法有一个不同

在发布表单时,您将能够获取隐藏字段的值,作为请求变量的一部分,但如果是全局javascript变量,则需要在POST或get调用中显式发送它

如果您只需要客户端变量,那么您可以使用它们中的任何一个,但如果您需要将它们与服务器一起发送,那么在这种情况下,输入type=“hidden”将是一个不错的选择

请参见
type=“hidden”
如果您想将一些重要的值发布到服务器,而您不想向用户显示这些值,那么输入是一个更好的选择。通常,人们在使用不带ajax的表单时使用它,如果使用表单,则必须为其指定一个属性
name=”“
,因为这是作为密钥发送到服务器的属性


虽然js中的全局变量在某种程度上是有用的,但我想不建议使用它,因为它会使代码变得有点不可维护。

当您使用AJAX请求时,我想指导您,如果可能的话,您应该避免使用这两种方法 首先,全局变量为什么要避免全局变量在下面的原因中提到

javascript中不鼓励使用全局变量的原因是,在javascript中,所有代码都共享一个全局名称空间,而且javascript也包含了隐含的全局变量,即,未在局部范围中显式声明的变量会自动添加到全局名称空间中。过于依赖全局变量可能会导致同一页面上的不同脚本之间发生冲突

要知道如何避免全局变量,这将很有帮助->

Samway hiddenfields在dom上添加了额外的字段,并在繁重的过程中从dom元素获取值,类似地,您将只获取文本格式的值,因此您始终需要将其转换为INTEGER或JSON中的对象,这同样会增加开销


我更愿意在必要时将其保存在一些闭包中,如果您想知道如何将其应用到当前场景中,我们可以在这里的评论中讨论。。有关闭包的信息,请查看此stackoverflow

隐藏字段对于数据结构一致性非常有用


发送4个“真实”表单字段加上两个隐藏字段比发送4个真实字段加上两个全局字段更容易理解,即使您是100%的AJAX。

隐藏输入对于处理表单中的数据很有用,而不仅仅是保存隐藏信息。如果发送表单,所有输入变量(隐藏或不隐藏)都将被删除sent@BenPearlKahan-只有那些具有
名称
属性的才会被发送。您可以通过隐藏输入发送一些信息。我们不使用表单,只使用
$.ajax()
。。。