2015第37周五javascript函数arguments对象巧用一

Javascript函数的一个巧妙利用:假定action中有一个JSONObject类型的对象data,其值有可能为空,则前台JSP页面的JS代码中想直接通过EL表达式,即${data}的形式访问对象的值,则可能会因为data对象为空导致JS预处理错误,如JSP中有这样的代码,var obj=${data};,则当后台data为null时前台页面会变成var obj=;进而页面报错终止运行。有人想通过类似 var obj=('${data}'==''?{}:${data})来解决,但该代码依旧编译不通过,因为预处理时变成了var obj=(''==''?{}:),直接语法错误,这种情况一般只能通过'${data}'将该值给字符串,然后通过eval()函数或引入第三方json库来转换成json对象,还可以通过下面的函数解决:

function getJsonData(data){

  if(arguments.length>0){

    return data;

     }

    return {}

}

 var obj = getJsonData(${data});

posted on 2015-09-11 22:39  时间朋友  阅读(158)  评论(0编辑  收藏  举报

导航