7.JSON.html 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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>Document</title>
  7. </head>
  8. <body>
  9. <!--
  10. JSON:JavaScript Object Notation
  11. JS 对象 表示 数据结构;
  12. -->
  13. <script>
  14. // JSON对象的形式:字符串类型 基本数据类型
  15. var obj ='{"name":"age"}';
  16. var str = '{"name":"abc"}';
  17. var obj1 = '{"age":"1"}'
  18. // 数组套对象的形式
  19. var obj1 = '[{"name":"1"}]'
  20. // 注意:在JSON中属性名和属性值必须输双引号引起来 最外面是单引号;
  21. console.log(obj,'1')
  22. // JSON对象转成JS对象 JSON.parse()
  23. console.log(JSON.parse(obj),'2')
  24. var person = {
  25. name: 'LiLi',
  26. age: '10'
  27. }
  28. console.log(person,'3')
  29. // JS对象转成JSON对象 JSON.stringify()
  30. console.log(JSON.stringify(person),'4')
  31. // 堆和栈
  32. // 堆 引用数据类型(对象)
  33. // 栈 基本数据类型 引用数据类型的指针
  34. var news;
  35. news = obj;
  36. news='{"name":"aaa"}';
  37. console.log(news,'news');
  38. console.log(obj,'obj')
  39. var newPerson;
  40. newPerson = person;
  41. newPerson.age = '18';
  42. console.log(person,'3')
  43. console.log(newPerson,'5')
  44. // 深拷贝、深克隆: 将一个变量的值给另一个变量 修改其中一个的值 原有的变量不会发生改变(基本数据类型)
  45. // 浅拷贝、浅克隆: 将一个变量的值给另一个变量 修改其中一个的值 原有的变量也会发生改变(引用数据类型)
  46. var person1 = JSON.stringify(person);
  47. var person2;
  48. person2 = person1;
  49. person2 = '{"name":"LiLi","age":"28"}';
  50. console.log(person1,'person1')
  51. console.log(person2,'person2')
  52. // 实现深拷贝 将对象转成json对象 JSON.stringify()
  53. </script>
  54. </body>
  55. </html>