简短的javascript代码:初始化为零或增量

Gee*_*Jan 24 javascript

我喜欢那些简短的js oneliners.我想知道是否有符合逻辑和优雅的东西:

  • 如果未定义,则将变量初始化为零
  • 否则增加一个.

比这更短的;)

var obj = {} ; 

//some iterative called function
obj.prop = obj.prop===undefined?0:obj.prop++;
Run Code Online (Sandbox Code Playgroud)

I H*_*azy 42

这将导致NaN第一个增量,默认为0.

obj.prop = ++obj.prop || 0;
Run Code Online (Sandbox Code Playgroud)

  • @chumkiu是的,因为引用未声明的变量是一个错误.如果你首先使用`var`关键字声明它,它会起作用 - "var a = ++ a ||" 0`. (3认同)

Bog*_*n D 32

更简洁的方法就是这样做

obj.prop = obj.prop + 1 || 0;
Run Code Online (Sandbox Code Playgroud)

使用增量运算符是错误的或过度的.后缀运算符x++(问题中的示例)根本不起作用.前缀,++x导致分配两次(如说x = x = x+1)