12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Document</title>
- </head>
- <body>
- <!--
- JSON:JavaScript Object Notation
- JS 对象 表示 数据结构;
- -->
- <script>
- // JSON对象的形式:字符串类型 基本数据类型
- var obj ='{"name":"age"}';
- var str = '{"name":"abc"}';
- var obj1 = '{"age":"1"}'
- // 数组套对象的形式
- var obj1 = '[{"name":"1"}]'
- // 注意:在JSON中属性名和属性值必须输双引号引起来 最外面是单引号;
- console.log(obj,'1')
- // JSON对象转成JS对象 JSON.parse()
- console.log(JSON.parse(obj),'2')
- var person = {
- name: 'LiLi',
- age: '10'
- }
- console.log(person,'3')
- // JS对象转成JSON对象 JSON.stringify()
- console.log(JSON.stringify(person),'4')
- // 堆和栈
- // 堆 引用数据类型(对象)
- // 栈 基本数据类型 引用数据类型的指针
- var news;
- news = obj;
- news='{"name":"aaa"}';
- console.log(news,'news');
- console.log(obj,'obj')
- var newPerson;
- newPerson = person;
- newPerson.age = '18';
- console.log(person,'3')
- console.log(newPerson,'5')
- // 深拷贝、深克隆: 将一个变量的值给另一个变量 修改其中一个的值 原有的变量不会发生改变(基本数据类型)
- // 浅拷贝、浅克隆: 将一个变量的值给另一个变量 修改其中一个的值 原有的变量也会发生改变(引用数据类型)
- var person1 = JSON.stringify(person);
- var person2;
- person2 = person1;
- person2 = '{"name":"LiLi","age":"28"}';
- console.log(person1,'person1')
- console.log(person2,'person2')
- // 实现深拷贝 将对象转成json对象 JSON.stringify()
- </script>
- </body>
- </html>
|