【问题标题】:Is it possible to give a variable a default value是否可以给变量一个默认值
【发布时间】:2011-05-23 13:25:31
【问题描述】:

如果在加载时没有定义变量,是否可以给它们一个默认值?

我的脚本中有需要相乘的变量,只有它们从输入字段中获取值,所以在加载时它们都是空的......

代码:

var conMin = document.getElementById('cMin').value; 
var serLev = document.getElementById('sLev').value; 
var coreHrs = conMin * serLev * noFrames; 
var noFrames = 1800

【问题讨论】:

  • 你能发布你的脚本吗?我最好的猜测是你把事情复杂化了:)
  • 为什么不给输入字段默认值?
  • codevar conMin = document.getElementById('cMin').value; var serLev = document.getElementById('sLev').value; var coreHrs = conMin * serLev * noFrames; var noFrames = 1800;code
  • var something = 'defaultValue';
  • 最好将代码编辑到答案中,以便对其进行格式化。

标签: javascript html


【解决方案1】:

做这样的事情

var conMin = document.getElementById('cMin').value || 'cMin_default'; 
var serLev = document.getElementById('sLev').value || 'sLev_default';

如果左边的值为 false、0、""、null 或 undefined,则为变量分配右边的值。

【讨论】:

  • 如果变量被设置为不正确的值(例如0),那么该值将被默认覆盖。
  • @LG87 — 如果左侧为真,or 运算符将返回左侧,否则返回右侧。
  • @LG87:但解释就是昆汀所说的。
【解决方案2】:
if (typeof someVar === "undefined") {
    someVar = 'a default';
}  

【讨论】:

    【解决方案3】:

    你可以尝试几件事。

    正如已经建议的那样,您可以使用默认值填充输入字段作为一种可能性。

    另外,不要直接从输入字段中提取值,而是在将它们带入时进行一些验证并将它们存储在变量中(即var 变量中的变量,而不是document 中的变量) )。这将使您有机会检查该值是否合适,如果为空,请填写默认值,如下所示:

    var conMin = '2'; //or whatever default value you want
    if (document.getElementByID('cMin').value != '') {
        conMin = document.getElementByID('cMin').value;
    }
    

    【讨论】:

    • 谢谢 Gordon,我现在已经试过了,只有当我尝试将 3 个变量相乘时它仍然返回 NaN,你知道是什么原因造成的吗?
    • 因为它们是字符串。您必须先使用 parseInt 将它们转换为整数
    猜你喜欢
    • 1970-01-01
    • 2011-08-19
    • 2010-09-13
    • 1970-01-01
    • 2011-03-17
    • 2015-10-13
    • 2019-08-24
    • 2014-10-15
    • 1970-01-01
    相关资源
    最近更新 更多