Javascript - 如果不设置var

时间:2014-04-16 11:04:25

标签: javascript jquery if-statement

我在使用一些javascript时遇到了一些麻烦,我已经搜索了一个问题并回答了这个问题,但由于它可能是最简单的事情之一,我怀疑除了我自己以外的任何人都会弄错。< / p>

我正在尝试简单地创建一个内容切换器,但移动到下一段内容的if语句似乎不起作用:

//Work out next box
if (i == 2){var x=1;}else{var x=i+1;}

我已经创建了一个快速的小提琴手(http://jsfiddle.net/TuMEa/5/)试图让这个工作,如果有人可以帮助我,我会很高兴,谢谢你:)

(我的JS知识很少,但是有一些编程知识(所以我理解做了什么))

2 个答案:

答案 0 :(得分:1)

使用变量时,它有2个部分:

  • 声明
  • 定义

此外,{}会创建scope

变量在声明的范围内存在(可以使用)。

宣言

 var x;

声明意味着告诉程序在此范围内有一个名为x的变量。

定义

 x = 3;

定义意味着告诉程序该变量保存的值(指向),并且只有在首先定义变量时才能完成。

正如您在此处所看到的,您必须在scopeif的公共else中声明您的变量以外的荣誉。

http://jsfiddle.net/2hwG7/

var x, i = 1;
if (i == 2)
    x=1;
else
    x=i+1;

console.log(x);

?:运算符

此外,正如其他用户提到的,在javascript中有一个ternary operatorconditional operator)。

用法:

condition ? action1 : action2;

以上翻译为:

if(condition) action1; else action2;

它被称为ternary operator,因为它使用3 operands

答案 1 :(得分:0)

i = 0;
x = 0;


if (i == 2){x=1;}else{x=i+1;}

console.log(x);

http://jsfiddle.net/9TXJ9/

您正在使用var,仅在块范围内创建变量。