博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
六、其他javascript秘籍
阅读量:6831 次
发布时间:2019-06-26

本文共 1573 字,大约阅读时间需要 5 分钟。

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/archive/2012/07/30/2615098.html

你可能感兴趣的文章
你真的了解word-wrap和word-break的区别吗?
查看>>
玩转linux: sed命令详解【转】
查看>>
centos7 启动httpd的时候为什么显示是这样的
查看>>
PHP | 别家网站都有的登录功能,你的网站也可以有!
查看>>
Python实现正则表达式匹配任意的邮箱
查看>>
SpringBoot配置属性之其他
查看>>
Spring+SpringMVC+MyBatis整合进阶篇(四)RESTful实战(前端代码修改)
查看>>
tf.nn.conv2d实现卷积的过程
查看>>
LED全彩显示屏色度空间
查看>>
tomcat查看并修改jvm大小
查看>>
P1564 膜拜
查看>>
No application encryption key has been specified.
查看>>
Nginx的基本配置案例
查看>>
一线架构师带你玩性能优化
查看>>
13. 关于IDEA工具在springboot整合mybatis中出现的Invalid bound statement (not found)问题
查看>>
mysql监测工具
查看>>
lxml xpath 爬取并正常显示中文内容
查看>>
boost bind使用指南
查看>>
Centos防火墙设置与端口开放的方法
查看>>
工作总结 razor 接收datatable
查看>>