使用JSON作为函数的参数的优缺点_json

一直对json不太懂,最近看了一些介绍才发现,原来这个东西这么好用,下面就为大家介绍一下

1、我们可以随时为一个函数添加/删除参数或在任意参数位置添加新参数,而不会像传统参数一样必须按照规定的顺序书写,而且每次添加或删除函数某个参数都要函数内容进行修改。而使用JSON作为参数可以不用考虑参数顺序。
看下面代码演示:

<script type="text/javascript">
 <!--
 //普通方法
 function commonArg(name,age,desc){
  var userinfo="name: "+name+","+"age: "+age+"\ndescription: "+desc;
  alert(userinfo);
 }
 commonArg("yemoo",22,"a boy!")//每次调用都必须按照规定的参数顺序书写,如果写成commonArg(22,"yemoo","desc")则返回信息就不对,每次都必须记忆每个参数意义及顺序

 //JSON参数法
 function jsonArg(info){
  var userinfo="name: "+info.name+"\tage: "+info.age+"\ndescription: "+info.desc;
  alert(userinfo);
 }
 jsonArg({name:"blue",age:22,desc:"a gril?"});
 jsonArg({desc:"not a people!",name:"sss",age:0});
 //参数位置可以随意写
 //-->
 </script>

普通函数缺点很明显:必须记忆参数意义和顺序。而使用JSON的方法则不需要。

2、使用者对函数的调用非常方便,特别是在只需要传入其中几个或一个参数时。
看下面的代码演示:

<script type="text/javascript">
 <!--
 //普通方法
 function commonArg(name,age,desc){
  var userinfo="name: "+(name||"empty")+"\tage: "+(age||0)+"\ndescription: "+desc||"empty";
  alert(userinfo);
 }
 //当只需要设定后面的参数时前面每个参数都需要设置为null
 commonArg("tempUser");
 commonArg(null,null,"a boy!");
 commonArg(null,20);

 //JSON参数法
 function jsonArg(info){
  var userinfo="name: "+(info.name||"empty")+"\tage: "+(info.age||0)+"\ndescription: "+(info.desc||"empty");
  alert(userinfo);
 }
 //每次只需要设置需要设定参数项
 jsonArg({name:"tempUser"});
 jsonArg({desc:"a boy!"});
 jsonArg({age:20});
 //-->
 </script>

JSON方法优点很明显:每次只需传入需要的参数即可,而不用考虑其他参数。
JSON真是一个好用的东西,不用在ajax方面还是在js的其他方面都体现了其方便灵活的特性,的确应该好好去挖掘和学习json。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索json
, 函数
参数
js函数传递json参数、main函数参数的使用、json xml 比较优缺点、xml与json的优缺点、json优缺点,以便于您获取更多的相关知识。

时间: 2024-10-01 09:17:57

使用JSON作为函数的参数的优缺点_json的相关文章

PYTHON3处理JSON的函数

在python3中import json模块,然后使用dir(json)可以看到json模块提供的函数,下面选几个常用的json处理函数看看用法: >>> import json >>> dir(json) ['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__',  '__author__', '__builtins__', '__cached__', '__doc__', '__file__',  '__

浅谈JSON.stringify 函数与toJosn函数和Json.parse函数

原文:浅谈JSON.stringify 函数与toJosn函数和Json.parse函数 JSON.stringify 函数 (JavaScript)   语法:JSON.stringify(value [, replacer] [, space]) 将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串. value 必需. 要转换的 JavaScript 值(通常为对象或数组). replacer 可选. 用于转换结果的函数或数组. 如果 replacer

Javascript基于AJAX回调函数传递参数实例分析_javascript技巧

本文实例讲述了Javascript基于AJAX回调函数传递参数的方法.分享给大家供大家参考,具体如下: 前面介绍了<javascript实现html页面之间参数传递的四种方法>,这里针对ajax参数传递做一分析. 在Javascript 中,特别是在AJAX中,回调函数常常是一个函数名,没有地方放入参数,如下面的AJAX代码,在成功后将调用回调函数callback,但callback是有参数的,如何把参数传进来呢? var callback = function(p1){ //do somet

main函数的参数(一)

C程序最大的特点就是所有的程序都是用函数来装配的.main()称之为主函数,是所有程序运行的入口.其余函数分为有参或无参两种,均由main()函数或其它一般函数调用,若调用的是有参函数,则参数在调用时传递.main(){...y1=f1(x1,x2);...}f1(int a,int b){....Y2=f2(x3,x4);....}f2(int m,int n){.........}在前面课程的学习中,对main()函数始终作为主调函数处理,也就是说,允许main()调用其它函数并传递参数.事

arguments对象验证函数的参数是否合法

  Javascript函数中的参数对象arguments是个对象,而不是数组.但它可以类似数组那样通过数字下表访问其中的元素,而且它也有length属性标识它的元素的个数. 使用arguments对象验证函数的参数是否合法 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <script> function sum(arg1,arg2) //加法函数 { var realArgCount = argu

Oracle中自定义函数 无参数 输入参数 输出参数

-- 19-1:建立无参数的函数 CREATE OR REPLACE FUNCTION cur_datetime RETURN VARCHAR2 IS BEGIN RETURN TO_CHAR(sysdate, 'YYYY"年"MM"月"DD"日"HH24″时"MI"分"SS"秒"'); END; / -- 19-2:建立带有输入参数的函数 CREATE OR REPLACE FUNCTION g

Excel函数的参数

函数右边括号中的部分称为参数,假如一个函数可以使用多个参数,那么参数与参数之间使用半角逗号进行分隔. 参数可以是常量(数字和文本).逻辑值(例如TRUE或FALSE).数组.错误值(例如#N/A)或单元格引用(例如E1:H1),甚至可以是另一个或几个函数等.参数的类型和位置必须满足函数语法的要求,否则将返回错误信息. (1)常量 常量是直接输入到单元格或公式中的数字或文本,或由名称所代表的数字或文本值,例如数字"2890.56".日期"2003-8-19"和文本&q

Excel函数应用教程:函数的参数

函数右边括号中的部分称为参数,假如一个函数可以使用多个参数,那么参数与参数之间使用半角逗号进行分隔. 参数可以是常量(数字和文本).逻辑值(例如TRUE或FALSE).数组.错误值(例如#N/A)或单元格引用(例如E1:H1),甚至可以是另一个或几个函数等.参数的类型和位置必须满足函数语法的要求,否则将返回错误信息. (1)常量 常量是直接输入到单元格或公式中的数字或文本,或由名称所代表的数字或文本值,例如数字"2890.56".日期"2003-8-19"和文本 &

Python中函数的参数定义和可变参数用法实例分析

  本文实例讲述了Python中函数的参数定义和可变参数用法.分享给大家供大家参考.具体如下: 刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函数定义,我们都知道,下面的代码定义了一个函数funcA ? 1 2 def funcA(): pass 显然,函数funcA没有参数(同时啥也不干:D). 下面这个函数funcB就有两个参数了, ? 1