json 格式字符串

一、潜规则: 按照字符串内存储的内容对字符串进行了一系列的划分

=> 普通字符串: 'jhsagdvhjkasgvfdhj'

=> 数字字符串: '798798654651323265987'

=> html 格式字符串: '<div></div>'

=> 查询字符串: 'key=value&key2=value2'


        json对象:描述数据的一种格式,将若干繁杂的属性封装为一个整体

        可以直接通过json对象,操作各个属性

1.定义,由{}括起来的键值对,每两个键值对用逗号分开

    key:value

    注意事项:所有的key请用双引号括起来

 2.属性的访问  常用

    a.通过点运算符访问

    对象名.属性名

b.下标法

    对象名[key]

c.为json对象添加新的自定义属性

    对象名.新属性名 = 属性值

d.json对象的遍历

    每次循环式=时变量代表索引

    for(var 变量 in json对象){

        循环体

    }

e.在一个成员方法中使用其他的成员,需要添加前缀this

例如:

var stu = {
        "name": "老王",
        "age": 88,
        "score": 100,
        "eat": function() {
            console.log("eat");
        },
        "showValue": function() {
            console.log(this.name, this.age, this.socre);
            this.eat();
        }
    }

    stu.showValue();

=> json 格式字符串:

         字符串内写的是对象: '{ "name": "Jack", "age": 18 }'

         字符串内写的是数组: '[{ "name": "Jack", "age": 18 }, { "name": "Jack", "age": 18 }]'

    要求:

1. json 格式字符串内, key 的位置必须使用 双引号包裹

2. json 格式字符串内, 必须是 对象或者数组(数组内是一个一个的对象) 的形式

3. json 格式字符串内, value 的位置, 如果是 纯数字或者布尔, 不需要包裹

4. json 格式字符串内, 不能包含函数数据类型

5. json 格式字符串内, 不允许最后一条数据以后还有一个 逗号(,)

6. json 格式字符串内, 引号以外的内容, 只有 冒号, 逗号, 大括号, 中括号

-> 书写的就是 js 内的对象数据或者数组数据

-> js 给我们提供了 json 格式转换的方法

-> json 格式是一种独立格式, 我们可以直接书写 .json 格式文件
 

// 1. js 的数据类型转换成 json 格式字符串

// 语法: JSON.stringify(要转换的js格式数据)

// 返回值: json 格式字符串

// var obj = { name: 'Jack', age: 18, gender: '男' }

// var res = JSON.stringify(obj)

// console.log(res)

// 2. json 格式字符串转换成 js 的数据类型

// 语法: JSON.parse(json格式字符串)

// 注意: 传递的参数必须是一个合法的 json 格式字符串, 否则直接报错

// var str = '{"name":"Jack","age":18,"gender":"男"}'

// var res = JSON.parse(str)

// console.log(res)

// Uncaught SyntaxError: Unexpected token a in JSON at position 0

// 只要看到这个错误, 说明 JSON.parse(xxx) 这个方法执行了

// xxx 不是一个 json 格式字符串内

// 你需要找到 xxx 是哪来的
 

// 3. 利用 json 格式实现深拷贝

var obj = {

name: 'Jack',

age: 18,

gender: '男',

info: {

height: 180,

weight: 180,

address: {

city: '北京'

}

},

hobby: [ '吃饭', '睡觉', [ '篮球', '足球' ] ]

}

// 3-1. 把 obj 直接转换成 json 格式

var r1 = JSON.stringify(obj)

console.log(r1)

// 3-2. 把转换好的 json 格式字符串在转换会对象

var res = JSON.parse(r1)

console.log(res)

console.log(obj)

obj.info.address.city = '上海'

console.log(res)

console.log(obj)

// var res = JSON.parse(JSON.stringify(obj)) // 简易实现深拷贝

二、严格模式

  严格模式:你必须使用定义过的变量

  被"use strict"修饰的作用域,所有变量必须定义才能使用

去掉了变量提升的作用

"use strict";
    a = 123;

    console.log(a);//未被定义时的打印

    var a; //定义

为什么使用严格模式:

①消除Javascript语法的一-些不合理、不严谨之处, 减少一些怪异行为;

②消除代码运行的一些不安全之处,保证代码运行的安全;

③提高编译器效率,增加运行速度;

④为未来新版本的Javascript做好铺垫。

⑤浏览器支持: IE10+ firefox 4+ Safari 5.1+ Chrome

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是打工人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值