一、潛規(guī)則: 按照字符串內存儲的內容對字符串進行了一系列的劃分
=> 普通字符串: 'jhsagdvhjkasgvfdhj'
=> 數(shù)字字符串: '798798654651323265987'
=> html 格式字符串: '<div></div>'
=> 查詢字符串: 'key=value&key2=value2'
????????json對象:描述數(shù)據(jù)的一種格式,將若干繁雜的屬性封裝為一個整體
????????可以直接通過json對象,操作各個屬性
1.定義,由{}括起來的鍵值對,每兩個鍵值對用逗號分開
? ? key:value
? ? 注意事項:所有的key請用雙引號括起來
?2.屬性的訪問 ?常用
? ? a.通過點運算符訪問
? ? 對象名.屬性名
b.下標法
? ? 對象名[key]
c.為json對象添加新的自定義屬性
? ? 對象名.新屬性名 = 屬性值
d.json對象的遍歷
? ? 每次循環(huán)式=時變量代表索引
? ? for(var 變量 in json對象){
? ? ? ? 循環(huán)體
? ? }
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 }'
? ? ? ? ?字符串內寫的是數(shù)組: '[{ "name": "Jack", "age": 18 }, { "name": "Jack", "age": 18 }]'
? ? 要求:
1. json 格式字符串內, key 的位置必須使用 雙引號包裹
2. json 格式字符串內, 必須是 對象或者數(shù)組(數(shù)組內是一個一個的對象) 的形式
3. json 格式字符串內, value 的位置, 如果是 純數(shù)字或者布爾, 不需要包裹
4. json 格式字符串內, 不能包含函數(shù)數(shù)據(jù)類型
5. json 格式字符串內, 不允許最后一條數(shù)據(jù)以后還有一個 逗號(,)
6. json 格式字符串內, 引號以外的內容, 只有 冒號, 逗號, 大括號, 中括號
-> 書寫的就是 js 內的對象數(shù)據(jù)或者數(shù)組數(shù)據(jù)
-> js 給我們提供了 json 格式轉換的方法
-> json 格式是一種獨立格式, 我們可以直接書寫 .json 格式文件
?
// 1. js 的數(shù)據(jù)類型轉換成 json 格式字符串
// 語法: JSON.stringify(要轉換的js格式數(shù)據(jù))
// 返回值: json 格式字符串
// var obj = { name: 'Jack', age: 18, gender: '男' }
// var res = JSON.stringify(obj)
// console.log(res)
// 2. json 格式字符串轉換成 js 的數(shù)據(jù)類型
// 語法: JSON.parse(json格式字符串)
// 注意: 傳遞的參數(shù)必須是一個合法的 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) 這個方法執(zhí)行了
// xxx 不是一個 json 格式字符串內
// 你需要找到 xxx 是哪來的
?
// 3. 利用 json 格式實現(xiàn)深拷貝
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)) // 簡易實現(xiàn)深拷貝
二、嚴格模式
? 嚴格模式:你必須使用定義過的變量
? 被"use strict"修飾的作用域,所有變量必須定義才能使用
去掉了變量提升的作用
"use strict";
a = 123;
console.log(a);//未被定義時的打印
var a; //定義
為什么使用嚴格模式:
①消除Javascript語法的一-些不合理、不嚴謹之處, 減少一些怪異行為;
②消除代碼運行的一些不安全之處,保證代碼運行的安全;
③提高編譯器效率,增加運行速度;
④為未來新版本的Javascript做好鋪墊。文章來源:http://www.zghlxwxcb.cn/news/detail-434568.html
⑤瀏覽器支持: IE10+ firefox 4+ Safari 5.1+ Chrome文章來源地址http://www.zghlxwxcb.cn/news/detail-434568.html
到了這里,關于json 格式字符串的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!