调用时函数返回错误的值let variable = function()

时间:2017-07-19 14:31:50

标签: javascript function

基本上,如果index等于0,我希望它return 1,如果它等于1,我希望它return 0 < / p>

所以我创造了这个。

let reverseIndex = function() {
  console.log(timeIndex) // 1
  let i
  timeIndex === 0 ? i = 1 : i = 0
  return i
}()

function getDiff(time) {
  console.log(reverseIndex) // 1 (WRONG)
}

但如果我将功能改为仅包括

function getDiff(time) {
  let i
  timeIndex === 0 ? i = 1 : i = 0
  console.log(i) // 0 (CORRECT)
}

2 个答案:

答案 0 :(得分:2)

为什么不在三元语句中使用赋值?

let i = timeIndex === 0 ? 1 : 0;

使用truty / falsy值缩短,转换为boolean并转换为布尔值。

let i = +!timeIndex;

或者只是在不使用临时变量的情况下返回值

return +!timeIndex;

答案 1 :(得分:-1)

您需要注意变量的范围。 timeIndex定义在哪里?

获得正确结果的最简单的功能是

function reverse(i) {
  if (i==0) return 1;
  if (i==1) return 0;
}