六、其他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");

}

原文地址:https://www.cnblogs.com/tomkillua/p/2615098.html