2.javascript常用对象
[toc]
前端–JavaScript常用对象
1. JSON对象
- JSON 文件的文件类型是
".json"
- JSON 文本的 MIME 类型是
"application/json"
1.1 JSON简介
JSON(JavaScript Object Notation, JS 对象简谱)
是一种轻量级的数据交换格式
。它基于 ECMAScript(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
- JSON 是存储和传输数据的格式。
- JSON 经常在数据从服务器发送到网页时使用。
- JSON 独立于语言 *****
- JSON 是“自描述的”且易于理解。
- * JSON 的语法是来自 JavaScript 对象符号的语法,
但 JSON 格式是纯文本。
读取和生成 JSON 数据的代码可以在任何编程语言编写的。
1.2 JSON语法
{key:value,key:value,key3:value3}
~~~~javascript
// 通过字面量创建对象
var zhangsan1={name:”张三”,age:19,sex:”男”}
// json数据格式
var zhangsan2={“name”:”张三”,”age”:19,”sex”:”男”}for (let i in zhangsan2){
//如果一个对象中的key是一个变量, console.log(i); // 那么获取key对应的值使用:对象名[key] 这种方式获取value; console.log(zhangsan[i]); console.log(zhangsan.i);//undefined
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
3. ![image-20201102201557808](/medias/js/image-20201102201557808.png)
4. JSON 值可以是:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- `数组(在方括号中)`
- 对象(在花括号中)
- null
5. ~~~javascript
"employees":[
{"firstName":"Bill", "lastName":"Gates"},
{"firstName":"Steve", "lastName":"Jobs"},
{"firstName":"Alan", "lastName":"Turing"}
]
~~~
6. `对象 "employees" 是一个数组。它包含了三个对象。`
###### JSON 字符串转换为 JavaScript 对象
首先,创建包含 JSON 语法的 JavaScript 字符串:
~~~~javascript
var text = '{ "employees" : [' +
'{ "firstName":"Bill" , "lastName":"Gates" },' +
'{ "firstName":"Steve" , "lastName":"Jobs" },' +
'{ "firstName":"Alan" , "lastName":"Turing" } ]}';
然后,使用 JavaScript 的
内建函数 JSON.parse()
来把这个字符串转换为 JavaScript 对象:
1 | var obj = JSON.parse(text); |
最后,请在您的页面中使用这个新的 JavaScript 对象:
1 | <script> |
JavaScript 对象转成 JSON 字符串
JSON.stringify();
1 | var zhangsan1={name:"张三",age:19,sex:"男"} |
1.3 JSON vs XML
JSON 和 XML 均可用于从 web 服务器接收数据。
下面的 JSON 和 XML 实例都定义了雇员对象,包含了由 3 个雇员构成的数组:
JSON
{"employees":[ { "firstName":"Bill", "lastName":"Gates" }, { "firstName":"Steve", "lastName":"Jobs" }, { "firstName":"Elon", "lastName":"Musk" } ]}
XML
- ~~~~xml
Bill Gates Steve Jobs Elon Musk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
5. JSON 类似 XML,因为:
- JSON 和 XML 都是“自描述的”(人类可读的)
- JSON 和 XML 都是分级的(值中有值)
- JSON 和 XML 都能被大量编程语言解析和使用
- JSON 和 XML 都能被 XMLHttpRequest 读取
6. JSON 与 XML 的差异在于:
- JSON 不使用标签
- JSON 更短
- JSON 的读写速度更快
- JSON 可使用数组
- 最大的不同在于:
- `XML 必须使用 XML 解析器进行解析。而 JSON 可通过标准的 JavaScript 函数进行解析。`
7. 为什么 JSON 比 XML 更好?
- XML 比 JSON 更难解析。
- JSON 被解析为可供使用的 JavaScript 对象。
- 对于 AJAX 应用程序,JSON 比 XML 更快更易用:
- 使用 XML
- 读取 XML 文档
- 使用 XML DOM 遍历文档
- 提取变量中存储的值
- 使用 JSON
- 读取 JSON 字符串
- JSON.Parse JSON 字符串
### 2. Date日期对象
~~~~html
<script>
/**
* Date(日期)对象
*/
var date = new Date();
// Mon Nov 02 2020 21:21:35 GMT+0800 (中国标准时间)
console.log(date);
console.log("----------获得年月日-------------");
console.log(date.getFullYear() + "年");//获得当前系统年份
console.log(date.getMonth() + 1 + "月");//月份是从0 开始的。所以正常月份需要+1;
console.log(date.getDate() + "日");//日期。指的是天。
console.log("----------获得时分秒-------------");
console.log(date.getHours() + "点");//小时
console.log(date.getMinutes() + "分");//分
console.log(date.getSeconds() + "秒");//秒
console.log(date.getMilliseconds() + "毫秒");//毫秒
console.log("----------获得星期 -------------");
console.log("周" + date.getDay());//周日是0; 获取星期。
// console.log(date.getTime());
// 这个方法获取的是当前时间与1970年1月1日的毫秒差值。
// 1970年1月1日 计算机元年。unix 倒计时,
console.log(date.getTime());
console.log(date.valueOf());//也是获取的是当前时间与1970年1月1日的毫秒差值。
console.log("----------获得日期 -------------");
console.log(date.toLocaleDateString());//获取到当前的日期,不包含时间
console.log(date.toLocaleTimeString());//获取当前时间,不包含日期。
// 小练习:2020年11月2日 星期一 21:31:44 806
console.log("---------- 小练习 -------------");
var da = new Date();
var year = da.getFullYear();//年
var month = da.getMonth() + 1;//月
var ri = da.getDate();//日
var week = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六",];
var xingqi = da.getDay();//星期
var hour = da.getHours();//小时
var min = da.getMinutes();//分
var seconds = da.getSeconds();//秒
var mills = da.getMilliseconds();//毫秒
console.log(year + "年" + month + "月" + ri + "日" +
" " + week[xingqi] + " " + parseNum(hour) + ":" + parseNum(min) + ":" + parseNum(seconds) + " " + mills);
function parseNum(num) {
if (num >= 10) {
return num;
} else {
return "0" + num;
}
}
</script>
3. Math数学对象
- Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math(),像 Math.sin() 这样的函数只是函数,不是某个对象的方法。您无需创建它,通过把 Math 作为对象使用就可以调用其所有属性和方法。使用 Math 的属性和方法的语法:
- 属性:
var pi_value=Math.PI;
- 方法:
var sqrt_value=Math.sqrt(15);
开平方。
1 | <script> |
3.1 随机点名案例
1 | <script> |
4. JS基本包装类型
- 基本数据类型:number ,string ,boolean。
包装类型:Number,String,Boolean 对象。
- 当值类型的数据要进行方法调用的时候,会先将自己转换成基本包装类型,会在堆内存中创建一个的对象,象的方法,当方法调用结束,会自动再转回值类型,此时堆内存的对象已经没有再被指向,会自动清理掉。
4.1 Number和Boolean
1 | <script> |
4.2 字符串String
字符串的不可变性
- 数组:是一个有序的数据的集合。
- 字符串:一组字符的结合,字符串是一个一个的字符拼接成的。
变量.length 获取字符串的长度。
- 遍历字符串:每个元素可以通过字符串[下标]获取当前元素;
- 字符串中的每个元素不可修改:字符串的不可变性。符串一旦形成,字符串中的每个字母(元素),都是不可以修改的。
str = "hello jack";
修改的str这个变量的指向。实际上Hello Justweb
依然是没有被修改的。
1 | <script> |
字符串常用的方法
1 | <script> |
5. 数组常用方法
1 | <script> |
补充:函数是可以作为参数传递的。
- 匿名函数:也可以作为参数传递。
1 | <script> |
☆
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jilfoyle!