每次调用函数时添加一个--- string + number

时间:2013-11-17 12:16:07

标签: javascript counting

每次我调用此功能。我希望输出增加1。问题是我的变量是一个字符串......

更好的解释(也许)

  1. 通话功能
  2. 警告说1
  3. 再次呼叫功能
  4. 警告说2
  5. 再次呼叫功能
  6. alert说3
  7. 依旧......
  8. 如何得到它!?

    这是我到目前为止的代码......

    function addLink(){
      if(localStorage.getItem('howManyLinks') <= 1){
      localStorage.setItem('howManyLinks', localStorage.getItem('howManyLinks') + 1)
      }
      else{
        localStorage.setItem('howManyLinks', '1');
      }
      alert(localStorage.getItem('howManyLinks'))
    }
    

    谢谢! :d

2 个答案:

答案 0 :(得分:0)

您需要将字符串转换为数字:

Number(localStorage.getItem('howManyLinks')) + 1

您还可以使用一元+运算符强制转换

+localStorage.getItem('howManyLinks') + 1

我个人不喜欢使用它,但很多人都喜欢它。

这是必要的原因是因为字符串上的+是连接,因此'1' + 1将返回'11'

答案 1 :(得分:-2)

你必须将该字符串强制转换为数字... 有很多方法可以做到这一点(http://jsperf.com/best-of-string-to-number-conversion/10) 我使用“&gt;&gt; 0”

function addLink(){
  if(localStorage.getItem('howManyLinks') <= 1){
    localStorage.setItem('howManyLinks', (localStorage.getItem('howManyLinks')>>0) + 1)
  }
  else{
    localStorage.setItem('howManyLinks', 1);
  }
  alert(localStorage.getItem('howManyLinks'))
}
addLink(); //alerts 1
addLink(); //alerts 2
addLink(); //alerts 3
addLink(); //alerts 4