在if语句中声明和测试LOCAL变量

时间:2011-08-07 11:57:32

标签: javascript

我需要声明一个局部变量并在if语句的条件下测试它。我希望能够这样做,但是我需要在没有全球范围的情况下这样做;这有可能吗?

notWorkingSofar('#element');
function notWorkingSofar(a) {
   if(!(b=document.getElementById(a.slice(1)))){return b;}
   else{return false;}
}

我需要它基本上这样做;但是这会产生SyntaxError。

notWorkingSofar('#element');
    function notWorkingSofar(a) {
       if(!(**var** b=document.getElementById(a.slice(1)))){return b;}
       else{return false;}
    }

有没有其他方法可以访问或设置局部变量,除了“var variable =”之外?也许是通过function.variable,类似于window.variable ......虽然不确定。

编辑:尝试在这些链中进行:(!!(b = document.getElementById(a.slice(1)))?b:[0,])

3 个答案:

答案 0 :(得分:5)

根本不需要变量。你可以这么做:

function notWorkingSofar(a) {
   return document.getElementById(a.slice(1)) || false;
}

或者如果你不打算测试严格的平等,甚至

return document.getElementById(a.slice(1));

会好的。


如果你真的想要一个局部变量而不是用

声明它
var b;

预先。

答案 1 :(得分:1)

很抱歉在旧帖子上发帖。我是通过谷歌来到这里寻找类似的东西。我也想以任何理由在相同条件下声明和测试变量,并且能够如下:

function myfunction(){
  var myTestVar;
  if((myTestVar = testFunction($('#myInput').val())) && (myTestVar == "Value I want")){
    //Do stuff in here
  }
}

第一部分将始终评估为true,因为它只是一个赋值,然后您可以在语句的后半部分测试新值。希望有人觉得这很有用!

答案 2 :(得分:0)

您的语法不起作用(如您所见)。出了什么问题:

function notWorkingSofar(a) {
   var b = document.getElementById(a.slice(1));
   if(!(b)){return b;}
   else{return false;}
}