ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

json、定时器

2022-08-06 20:34:33  阅读:152  来源: 互联网

标签:function 定时器 name write json var


json

JSON 是js的内置对象,主要操作json数据。

网络传输数据应用层都是字符串格式

最早网络数据传输流行的格式是XML: <name>222</name><age>22</age>

json 数据: '{"name":222,"age":22}', 现在都是用json传输数据。

json 格式数据的规定

\1. 对象的键名必须放在双""里面

\2. 数组或者对象的最后一个成员后面不能加逗号,

\3. 字符串必须用双引号表示。

\4. 复合类型(引用数据类型)的值只能是数组或者对象.

\5. 原始数据类型: 字符串,数值(只能用10进制表示),布尔值, null。不能用NaN, undefind, Infinity

var objStr = '{"a":1,"b":"a","c": null,"user": ["a","b",{"name":"zhangsan","age":12}]}';/
/ 符合json规范的js对象,加''变成字符串,就是一个json数据。

var arr = '["a1","b1",{"name":"zhangsan","age":12}]'
// 符合json规范的js数组,''变成字符串,就是一个json数据。

JSON.stringify

js对象转json字符串(json的序列化)

    var son = {
    name: "zhang san",
    age: 12,
    family: {
      address: "aaa",
      phone: 131111111
    },
    ss: undefined,
    aa: function () { }
  }
  var jsonSon = JSON.stringify(son);
  console.log(jsonSon, typeof jsonSon);
  //{"name":"zhang san","age":12,"family":{"address":"aaa","phone":131111111}} string

JSON.parse()

json数据转js对象(json反序列化)

    var obj = JSON.parse(objStr);
  console.log(obj, typeof obj);
  //{a: 1, b: 'a', c: null, user: Array(3)} 'object'

数据的深拷贝

该方法会把非json格式属性丢掉。

    var copySon = JSON.parse(JSON.stringify(son));
  console.log(copySon === son, copySon); //少了ss和aa
  //false {name: 'zhang san', age: 12, family: {…}}

定时器

js提供了定时执行js代码的功能,叫定时器。主要由两个内置的定时器方法实现。

setTimeout(function(){},delay);

指定某个方法在,delay毫秒之后执行,只执行一次。

返回值是该定时器在程序内部的索引值。

    var index = setTimeout(function () {
    document.write("hello");
  }, 2000);
  console.log(index); //1 ,依次类推

clearTimeout(index);

根据定时器的索引清除定时器,使定时器不会运行。

clearTimeout(index);

案例:实现每隔一段时间执行函数, 且输出5次hello就停止。

    var count = 1; // 创建变量计算hello输出次数,当大于5以后,不再调用write方法。
  function write() {
    setTimeout(function () {
      document.write(count + "-hello,");
      count++;
      if (count < 6) {
        write();
      }
    }, 2000);
  }
  write();   //递归思想

setInterval(function,delay)

每隔delay毫秒执行一次函数,会一直执行。返回值是该定时器的索引值

    var index = setInterval(function () {
    document.write("hello");
  }, 2000);

clearInterval ( index )

停止计时器。

clearInterval(index);

案例: 输出5次hello就停止。

    var counta = 1;
  var setIndex = setInterval(function(){
    document.write(counta + "-hello,");
    counta++;
    if(counta >5){
      clearInterval(setIndex);
    }
  }, 2000);

用变量代替匿名函数

如果计时器用变量代替函数,变量不要添加()

    var handle = function(){
    document.write("time out");
  };
  setTimeout(handle,2000)

给调用的函数传递参数

定时器调用函数传递参数,定时器函数的第三个参数开始就是给调用的函数传递参数

    var handle = function (name, age) {
    document.write("time out " + name + age);
  };
  setTimeout(handle, 2000, 111, 100);
 

标签:function,定时器,name,write,json,var
来源: https://www.cnblogs.com/nomnom/p/16557803.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有