博客列表 >JavaScrip中的基本数据类型,对象序列化为JSON字符串

JavaScrip中的基本数据类型,对象序列化为JSON字符串

王娇
王娇原创
2020年05月22日 15:31:34774浏览

学习总结

1.js中的数据类型和php中的数据类型非常相似,不同之处js中的数组类似php中的关联数组,js对象中的属性类似php中的关联数组,访问对象属性用.操作符
2.js中的对象可以通过JSON.sringify(对象名)方法把一对象序列化一个json字符串,然后在网络中传输
3.将一个json字符串解析为一个js对象JSON.parse(json字符串,回调函数可选)

1,index.html中的Script脚本

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>JavaScrip基础知识</title>
  7. </head>
  8. <body>
  9. <script>
  10. //-----------------------------------------
  11. //1.1JavaScript中的简单数据类型
  12. //----------------------------------------------
  13. var name = "angle";
  14. var age = 32;
  15. var isStudent = false;
  16. var hobby = null;
  17. var school = undefined;
  18. //js中有3种简单数据类型,string,number,boolean
  19. console.log(
  20. typeof name,
  21. name,
  22. typeof age,
  23. age,
  24. typeof isStudent,
  25. isStudent,
  26. typeof hobby, //输出类型为object,值为null
  27. hobby,
  28. typeof school, //输出类型为undefined,值为undefined
  29. school
  30. );
  31. //----------------------------------------------
  32. //1.2JavaScript中的数组
  33. //------------------------------------------------
  34. //js中数组定义
  35. var student = ["angle", 32, false];
  36. //数组长度通过student.length获得
  37. //通过for循环遍历数组
  38. for (var i = 0; i < student.length; i++) {
  39. console.log(student[i]);
  40. }
  41. //Array.isArray(变量名)判断一个变量是否是数组
  42. if (Array.isArray(student)) {
  43. console.log("student是一个数组");
  44. } else {
  45. console.log("student不是一个数组");
  46. }
  47. //如果script脚本放在head中
  48. //window.document.body.innerHTML += "<li>" + value + "</li>";会报类型错误
  49. //如果script脚本放在body中,则可以正常输出
  50. student.forEach(function (value, number, arr) {
  51. console.log(value);
  52. window.document.body.innerHTML += "<li>" + value + "</li>";
  53. });
  54. //使用slice函数获取数组中的元素,返回结果还是一个数组
  55. console.log("姓名:", student.slice(0, 1));
  56. //使用splice函数实现数组元素的 增 删 改 查
  57. console.log(student);
  58. student.splice(2, 0, "male", "listen music"); //splice(从什么位置开始,要删除几个元素,要插入的元素,要插入的元素,...)
  59. console.log(student);
  60. var orihobby = student.splice(3, 1, ["reading book", "programming"]); //插入的数据还可以是一个数组
  61. console.log(student);
  62. console.log(orihobby); //splice返回的是删除的数组元素,类型也是一个数组
  63. //---------------------------------------
  64. //1.3 JavaScript中的对象
  65. //------------------------------------------
  66. //定义对象用{}
  67. var stu = {
  68. name: "angle", //对象中可以包含简单数据类型
  69. age: 32,
  70. sex: "male",
  71. isStudent: false,
  72. //对象中可以包含数组
  73. hobby: ["reading book", "listen music", "programming"],
  74. //对象也可以包含另一个对象
  75. schoolInfo: {
  76. grade: "05-01",
  77. department: "计算机科学与技术",
  78. school: "清华大学",
  79. },
  80. };
  81. console.table(stu);
  82. console.log("姓名:" + stu.name); //通过.操作符,获取对象中的属性
  83. console.log("年龄:" + stu["age"]); //通过关联数组的方式访问对象属性
  84. console.log("第一个爱好:" + stu["hobby"][0]); //通过二维数组方式访问对象属性
  85. console.log("校名:" + stu["schoolInfo"]["school"]); //通过二维关联数组方式访问对象属性
  86. //通过for(属性名称 in 对象名) {属性值 = 对象名[属性名]}语句遍历对象属性
  87. for (key in stu) {
  88. console.log(key, ":", stu[key]);
  89. }
  90. //上下两种方法结果相同
  91. stuKey = Object.keys(stu); //Object.keys(对象名)获取对象的属性名称
  92. stuKey.forEach(function (value) {
  93. console.log(value, ":", this[value]);
  94. }, stu);
  95. //--------------------------------------------
  96. //函数
  97. //-------------------------------------------------
  98. //定义函数,两数之间的和
  99. function sum(start, end) {
  100. var sum = 0;
  101. //for循环
  102. for (var i = start; i <= end; i++) {
  103. sum += i;
  104. }
  105. return sum;
  106. }
  107. console.log("1-100的和为:", sum(1, 100));
  108. //函数表达式 ,可以把函数赋给一个变量,通过变量调用函数
  109. var sum = function (start, end) {
  110. var sum = 0;
  111. var i = start;
  112. //while循环
  113. while (i <= end) {
  114. sum += i;
  115. i++;
  116. }
  117. return sum;
  118. };
  119. console.log("1-10的和为:", sum(1, 10));
  120. //直接调用函数
  121. console.log(
  122. "1-50的和为:",
  123. (function (start, end) {
  124. var sum = 0;
  125. var i = start;
  126. //do while 循环
  127. do {
  128. sum += i;
  129. i++;
  130. } while (i <= end);
  131. return sum;
  132. })(1, 50)
  133. );
  134. //--------------------------------------------
  135. //JS对象序列化为json字符串
  136. //--------------------------------------------
  137. var stu1 = {
  138. name: "hugn", //对象中可以包含简单数据类型
  139. age: 32,
  140. sex: "female",
  141. isStudent: false,
  142. //对象中可以包含数组
  143. hobby: ["reading book", "listen music", "programming"],
  144. //对象也可以包含另一个对象
  145. schoolInfo: {
  146. grade: "08-02",
  147. department: "计算机科学与技术",
  148. school: "人民大学",
  149. },
  150. //定义对象方法,返回名字
  151. getName: function () {
  152. return this.name;
  153. },
  154. //定义对象方法,更改名字
  155. updateName: function (value) {
  156. this.name = value;
  157. },
  158. updateAge: function (value) {
  159. this.age = value;
  160. },
  161. };
  162. console.table(stu1); //通过表格方式显示对象属性
  163. var stuName = stu1.getName(); //获取对象中的名字
  164. console.log(stuName);
  165. stuName = "Eric";
  166. stu1.updateName(stuName); //更改对象中的名字
  167. console.log(stu1.getName());
  168. //将js对象序列化为一个json字符串
  169. var stuJson = JSON.stringify(stu1);
  170. //序列化后的json字符串,只包含已经定义并赋值的属性值
  171. console.log(stuJson);
  172. // stringify(JS对象,需要序列化的属性数组)
  173. stuJson = JSON.stringify(stu1, ["name", "age", "sex"]);
  174. console.log(stuJson);
  175. stu1.updateAge(45); //更改年龄
  176. //stringify(js对象,回调函数(对象属性名,对象属性值))
  177. stuJson = JSON.stringify(stu1, function (key, value) {
  178. switch (key) {
  179. case "sex":
  180. if (value == "male") return "女";
  181. else return "男";
  182. case "age":
  183. if (value < 30) return "还年轻,抓紧奋斗";
  184. else if (value >= 30 && value < 40) return "已到而立之年";
  185. else if (value >= 40 && value < 50) return "已到不惑之年";
  186. else if (value >= 50 && value < 60) return "知天命";
  187. else return "该退休啦!";
  188. default:
  189. return value;
  190. }
  191. });
  192. console.log(stuJson);
  193. //----------------------------------------------------
  194. //将json字符串解析为一个js对象JSON.parse(json字符串,回调函数(属性名,属性值))
  195. //----------------------------------------------------
  196. var jsObj = JSON.parse(stuJson, function (key, value) {
  197. if (key == "sex") {
  198. if (value == "男") return "female";
  199. else return "male";
  200. }
  201. return value;
  202. });
  203. console.log(jsObj);
  204. var stu2 = {
  205. name: jsObj.name,
  206. age: jsObj.age,
  207. sex: jsObj.sex,
  208. isStudent: jsObj.isStudent,
  209. };
  210. console.log(stu2);
  211. </script>
  212. </body>
  213. </html>
  • 代码运行效果图




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议