您的位置:首页 > Web前端 > JavaScript

el表达式在js中有时需要加引号才可以用,何时需要加引号,何时不需要加引号

2018-01-03 19:28 302 查看
本以为js是弱语言,对语言的要求不高,但是今天遇见一个坑,在js代码中编写el表达式,却一直没反应,代码如下

$(function(){
var msg = ${msg};
if(msg!=null && msg != ''){
alert(msg);
}
});


在此代码中,接收服务器返回的msg信息,用el表达式取值,却一直没有反应,应该在el表达式两边加引号,如下:
$(function(){
var msg = "${msg}";
if(msg!=null && msg != ''){
alert(msg);
}
});


然后就可以顺利取值了.
那么为什么这次需要加引号才有作用,我们先看一下

浏览器端的源代码

$(function(){
var msg = "ip不正确";
if(msg!=null && msg != ''){
alert(msg);
}
});


服务器给浏览器发送的是el表达式取值后的结果,也就是说el表达式是在服务器端完成的解析,如果el表达式的取值是字符串的话,如果不加引号,那么响应到浏览器的源码为:

var msg = ip不正确


是错误的js格式,
所以el表达式的取值如果是字符串的话就必须加上引号,如:

var msg = "ip不正确"

才可以正常显示,

如果el表达式的值为对象或数值,就不用加引号,

这个原理是不是类似在mybatis文件中${}和#{}的区别,

${}是取值,不带引号,

#{}自动带引号,把值转换成字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐