zoukankan      html  css  js  c++  java
  • 六、其他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");

    }

  • 相关阅读:
    奇异值分解(SVD)详解及其应用
    注意力机制最新综述解读
    双目立体视觉的数学原理
    区域生长算法原理及MATLAB实现
    “error LNK2019: 无法解析的外部符号”的几种可能原因
    3D Slicer Adding MRML
    3D Slicer CreateModels-Module Analysis
    3D Slicer 结构的实例分析IGSReader
    3D Slicer VS-Qt5VSaddin-qt4.8.7dev
    3D Slicer Debug or Dev-170918
  • 原文地址:https://www.cnblogs.com/tomkillua/p/2615098.html
Copyright © 2011-2022 走看看