在javascript判断两个变量值是否相等,可以使用 ==(等同)操作符 或者 ===(恒等)操作符。
== 操作符
“等同”操作符,简单判断2个变量值是否相等,变量类型不一致时,会做类型转换,即忽略变量的类型进行比较
例子1
var str1 = "123456" // 字符串
var str2 = "123456" // 字符串
alert(str1==str2) // 打印出 true,即相等
扩展资料
js中==和===区别:
简单来说: == 代表相同, ===代表严格相同,当进行双等号比较时候: 先检查两个操作数数据类型,如果相同, 则进行===比较, 如果不同, 则愿意为你进行一次类型转换, 转换成相同类型后再进行比较, 而===比较时, 如果类型不同,直接就是false。
双等号==:
(1)如果两个值类型相同,再进行三个等号(===)的比较;
(2)如果两个值类型不同,也有可能相等,需根据以下规则进行类型转换在比较:
1)如果一个是null,一个是undefined,那么相等;
2)如果一个是字符串,一个是数值,把字符串转换成数值之后再进行比较。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class ExecJs {
/**
* 记录日志类
*/
private Logger log = Logger.getLogger(ExecJs.class)
/**
* 后置处理,执行js脚本
* @param js
* @throws Exception
*/
public void execJs(String js, Map<String,Object>map) throws Exception {
if (log.isDebugEnabled()) {
log.debug("execJs js : " + js)
Iterator<Entry<String, Object>>it = map.entrySet().iterator()
while (it.hasNext()) {
Entry<String, Object>entry = (Entry<String, Object>) it.next()
log.info("EXECJS MAP : " + entry.getKey() + "---" + entry.getValue())
}// end while
}// end if
if ("".equals(js) || js == null) {
log.info("EXECJS ERROR : JAVASCRIPT CONTENT IS NULL")
} else if(map == null || map.size()<=0){
log.info("EXECJS ERROR : MAP CONTENT IS NULL")
} else {
// 获取脚本引擎
ScriptEngineManager mgr = new ScriptEngineManager()
ScriptEngine engine = mgr.getEngineByName("javascript")
// 绑定数据
ScriptContext newContext = new SimpleScriptContext()
Bindings bind = newContext.getBindings(ScriptContext.ENGINE_SCOPE)
bind.putAll(map)
try {
engine.setBindings(bind, ScriptContext.ENGINE_SCOPE)
engine.eval(js)
} catch (Exception e) {
log.info("EXECJS EXCEPTION : EXECUTE JAVASCRIPT EXCEPTION", e)
throw (e)
}// end try
}// end if
}
}
<script language="javascript">
function test(){
var state = "" //首先得到state的值
if(state=="续满"){
alert("续满了")
}else{
alert("没有续满")
}
}
</script>
在相应位置调用test()这个函数
在JavaScript中判断是否相等,全部用==,因为它是弱语言,所有类型的变量都是var