【问题标题】:Defining variable within if statement in javascript在javascript中的if语句中定义变量
【发布时间】:2017-05-13 09:55:42
【问题描述】:

当这样验证条件时,我想为变量赋值

if (k<12){

var Case=4;

} 

当我调用此变量以打印在页面正文中时的问题我得到未定义

document.write(Case);

【问题讨论】:

  • @NenadVracar 这是真的
  • 它应该可以工作jsfiddle.net/Lg0wyt9u/1902
  • @NenadVracar 它的false 声明。因为k 是未定义的。而case 也在if 中定义为真。所以你得到未定义。将case 声明为全局变量。不要忘记定义k
  • @NenadVracar 我有大代码,var 声明在头部的函数中,调用在正文中
  • Case 应该预先设置什么 default 值?

标签: javascript variables if-statement


【解决方案1】:

基本上你的var statement 被提升并分配给undefined

变量声明,无论它们出现在哪里,都会在执行任何代码之前进行处理。使用var 声明的变量的范围是它当前的执行上下文,它可以是封闭函数,或者对于在任何函数之外声明的变量,是全局的。如果你重新声明一个 JavaScript 变量,它不会丢失它的值。

执行顺序:

var Case;        // hoisted, value: undefined

if (k < 12) {
    Case = 4;
}

【讨论】:

    【解决方案2】:

    你得到未定义是因为你还没有真正定义它。当条件为真时,您正在定义它。你应该这样写代码。

    var Case = null;
    var k = 0;
    
    if(k > 14) {
      Case = 3;
    }
    
    document.write(Case);
    

    希望对你有帮助。

    【讨论】:

      【解决方案3】:
      var Case = 0;
      if(k<12){
        Case = 4;
      }
      document.write(Case);
      

      你需要先定义它,所以如果 k

      【讨论】:

        猜你喜欢
        • 2023-03-19
        • 1970-01-01
        • 2018-01-09
        • 2017-03-21
        • 1970-01-01
        • 2013-02-28
        • 1970-01-01
        • 1970-01-01
        • 2023-02-10
        相关资源
        最近更新 更多