ASP VBscript使用邏輯運算中的 and or
session("postTime")=NOW()
response.write("postisfast")
response.end
end if
如果 if 前面有 session("postTime") = ""
則報錯 500
如果postTime = now() 已經賦過值 則 不會報錯
再例如
<%
dim a
a = 1
if a=1 and test1() = 0 then
response.Write("in")
end if
%>
<%
function test1()
test1 = 0
end function
%>
結果為
<hr>in
若將1改為0
<%
dim a
a = 0
if a=1 and test1() = 0 then
response.Write("in")
end if
%>
<%
function test1()
test1 = 0
response.Write("<hr>")
end function
%>
結果為
<hr>
說明 儘管 and 前面結果為false ,但and 後面都會執行 response.write("<hr>")
或 or
<%
dim a
a = 1
if a=1 or test1() = 0 then
response.Write("in")
end if
%>
<%
function test1()
test1 = 0
response.Write("<hr>")
end function
%>
其結果也為
<hr>in
不管 前面是否為true 都會執行or後面的程式碼
結論 當有時 用到判斷 and or 時要注意 條件變數是否為空
不與其他語言 一樣 使用 && ||作為與或時 ,&&遇到false則結束,or遇到true則結束
例如
<script language="javascript">
var a,b;
a = 1;
if (a==1 || test1()>0){
alert("in");
}
function test1(){
alert("in test1");
return 1;
}
</script>
不會執行test1()
使用 && 時如果前面 a==1為false 也不會去執行test1()