我需要声明一个局部变量并在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,])
答案 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;}
}