六、其他javascript秘籍
json javascript Object notation 即javascript对象表示法。json其实是一种数据格式。
下面的语句创建一个对象:
<script type="text/javascript">
var oPerson = {
name: ",mufan",
age: 100,
school: {
college:"jl",
"high school":"jlu"
},
like:["mm"]
}
</script>
json的语法格式是使用{}表示一个对象,使用“属性名称:值”的格式创建属性,多个属性用“,”隔开。上例中,school属性又是一个对象,like属性是一个数组。访问的方法如下:
objectA.school["high school"];
objectA.like[1];
.NET3.5以上版本支持json序列化和反序列化的类。
动态语言eval
eval()方法可以将json格式的字符转化为javascript对象:
var sJson = "{name:'mufan'}";
eval(" var oName =" + sJson);
alert(oName.name);
注意这里的sJson是字符串,是Json格式的,使用eval方法将sJson字符串转化为对象存储在oName中。
eval函数可以计算某个字符串,并执行其中的javascript代码。这使javascript摇身一变成了动态语言,可以在运行时构造语句,通过执行eval()函数。
eval函数是有返回值的:
var iNum = eval("5+2");
alert(iNum);//输出7
javascript中的逻辑运算符
javascript中的and or 还会返回对象
NOT运算符用 ! 表示。NOT运算符返回的一定是布尔值。任何定义的了对象都可以 ! 运算。
NOT运算符的规则如下:
对象返回false
数字0返回true
0以外的数字返回false
null返回true
NaN返回true
undefined返回true
未定义的undefined发生错误
NOT运算符其实和if条件语句的行为是一样的,只是结果相反。
AND运算符 && and运算符的运算数如果都是boolean类型的对象,那么运算规则就是如果有一个运算对象是false,则返回false。
and运算符的规则如下:
如果一个运算数是对象,另一个是Boolean,则返回该对象。
如果两个运算数都是对象,则返回第二个对象。
如果某个运算数是null,则返回null。
如果某个运算数是NaN,则返回NaN。
如果某个运算数是未初始化的undefined,则返回undefined。
如果运算数是未定义的undefined,则发生错误。
此外还有一个很重要的规则,如果第一个运算数决定的结果,就不再计算第二个运算数。
or运算符 || 有一个为true 就返回 true,在javascript中or运算符的规则如下:
如果一个运算数是对象,另一个是boolean值,则返回该对象。
如果两个运算数都是对象,则返回第一个对象。
如果两个运算数是null,则返回null。
如果某个运算数是NaN,则返回NaN。
如果某个运算数是未初始化的undefined,则忽略此操作数。
如果某个运算数是未定义的undefined,则报错。
利用||运算符做一个功能,设置默认参数,如下:
function testMethod3(param1)
{
alert(param1 || "abc");
}