微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 未识别的’if’中定义的未定义变量

我知道这可能有一个非常简单的答案,但我似乎无法弄明白.

我需要根据函数的参数值来定义变量的内容.

问题是,当我将值设置为if时,如果我得到ReferenceError:未定义newval

下面是运行错误代码的简化版本:

const myMessage = (recipientId,msg,miller) => {
      const tip = 1;
      if (tip===1) 
        {
        console.log("in here");
        const newval = "some value";
        }
      console.log("executes this");
      const send = newval;

当我检查控制台时,我会在执行此消息之前进入此处.这就是为什么我不确定为什么send不知道newval是什么.

任何正确方向的小费都将受到赞赏,
谢谢

解决方法

let和const都是明显的块范围,与var不同,所以你不能在周围的块之外引用它们(不是函数):

function scopes() {
  if (true) {
    var foo = 'visible';
    let bar = 'not visible';
    console.log(foo,bar); // both foo and bar are visible
  }
  console.log(foo,bar); // foo is visible,bar is not
}
console.log(foo,bar); // neither foo nor bar are visible

如果要将const设置为分支的结果,请尝试将分支移动到一个函数调用

function getNewValue(tip) {
  if (tip === 1) {
    // do stuff
    return "some value";
  } else {
    // do other stuff
    return "other value";
  }
}

const tip = 1;
const send = getNewValue(tip);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐