首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

新手在函数里如何判断函数外的变量是否定义

2012-09-12 
新手求助:在函数里怎么判断函数外的变量是否定义JScript codefunction outerfunc() {var mvar 1functio

新手求助:在函数里怎么判断函数外的变量是否定义

JScript code
function outerfunc() {    var mvar = 1;    function innerFunc() {        if (mvar == undefined)            var mvar = 100;        console.log(mvar);    };    innerFunc();}outerfunc();


每次输出都是100啊。。我知道这是因为js解释器先解析再运行导致预定义了局部变量mvar,从而覆盖了外面的 mvar,但如何才能避免这种现象,正常地判断一个外部变量是否定义并在它未定义时准备一个初值呢?

目前我只想到把它改造成全局变量和改变变量名这两种折衷方法。
JScript code
function outerFunc() {    mvar = 1;    function innerFunc() {        if (mvar == undefined)            mvar = 100;        console.log(mvar);    };    innerFunc();}outerFunc();


JScript code
function outerfunc() {    var mvar = 1;    function innerFunc() {        if (mvar == undefined)            var _mvar = 100;        else            var _mvar = mvar;        console.log(_mvar);    };    innerFunc();}outerfunc();


但是仍想知道有没有不用折衷的方法呢?

[解决办法]
没明白你要表单什么。。


JScript code
function outerfunc() {    var mvar = 1;    function innerFunc() {        if (mvar == undefined)            var mvar = 100;//如果你是要操作outerfunc的私有变量mvar,不要使用var定义mvar,要不这个mvar是innerFunc的变量了        console.log(mvar);//这里也是innerFunc的变量mvar    };    innerFunc();}outerfunc();
[解决办法]
if (typeof mvar == "undefined")
mvar = 100;

热点排行