forked from liang996/Javascript-Learning-notes
-
Notifications
You must be signed in to change notification settings - Fork 1
/
js数据类型.txt
257 lines (147 loc) · 5.23 KB
/
js数据类型.txt
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
1.JavaScript 数据类型
字符串值,数值,布尔值,数组,对象。
2.JavaScript 数据类型
JavaScript 变量能够保存多种数据类型:数值、字符串值、数组、对象等等:
var length = 7; // 数字
var lastName = "Gates"; // 字符串
var cars = ["Porsche", "Volvo", "BMW"]; // 数组
var x = {firstName:"Bill", lastName:"Gates"}; // 对象
3.数据类型的概念
在编程过程中,数据类型是重要的概念。
为了能够操作变量,了解数据类型是很重要的。
如果没有数据类型,计算机就无法安全地解决这道题:
var x = 911 + "Porsche";
给 "Volvo" 加上 911 有意义吗?这么做会发生错误还是会产生一个结果?
JavaScript 会这样处理上面的例子:
var x = "911" + "Porsche";
当数值和字符串相加时,JavaScript 将把数值视作字符串。
实例
var x = 911 + "Porsche"; //911porsche
数据类型的概念
在编程过程中,数据类型是重要的概念。
为了能够操作变量,了解数据类型是很重要的。
如果没有数据类型,计算机就无法安全地解决这道题:
var x = 911 + "Porsche";
给 "Volvo" 加上 911 有意义吗?这么做会发生错误还是会产生一个结果?
JavaScript 会这样处理上面的例子:
var x = "911" + "Porsche";
当数值和字符串相加时,JavaScript 将把数值视作字符串。
实例
var x = "Porsche" + 911; //Porsche911
4.JavaScript 从左向右计算表达式。不同的次序会产生不同的结果:
JavaScript:
var x = 911 + 7 + "Porsche";
结果:
918Porsche
JavaScript:
var x = "Porsche" + 911 + 7;
结果:
Porsche9117
在第一个例子中,JavaScript 把 911 和 7 视作数值,直到遇见 "Porsche"。
在第二个例子中,由于第一个操作数是字符串,因此所有操作数都被视为字符串。
5.JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同变量可用作不同类型:
实例
var x; // 现在 x 是 undefined
var x = 7; // 现在 x 是数值
var x = "Bill"; // 现在 x 是字符串值
6.JavaScript 字符串值
字符串(或文本字符串)是一串字符(比如 "Bill Gates")。
字符串被引号包围。您可使用单引号或双引号:
实例
var carName = "Porsche 911"; // 使用双引号
var carName = 'Porsche 911'; // 使用单引号
您可以在字符串内使用引号,只要这些引号与包围字符串的引号不匹配:
实例
var answer = "It's alright"; // 双引号内的单引号
var answer = "He is called 'Bill'"; // 双引号内的单引号
var answer = 'He is called "Bill"'; // 单引号内的双引号
7.JavaScript 数值
JavaScript 只有一种数值类型。
写数值时用不用小数点均可:
实例
var x1 = 34.00; // 带小数点
var x2 = 34; // 不带小数点
超大或超小的数值可以用科学计数法来写:
实例
var y = 123e5; // 12300000
var z = 123e-5; // 0.00123
8.JavaScript 布尔值
布尔值只有两个值:true 或 false。
实例
var x = true;
var y = false;
布尔值经常用在条件测试中。
9.JavaScript 数组
JavaScript 数组用方括号书写。
数组的项目由逗号分隔。
下面的代码声明(创建)了名为 cars 的数组,包含三个项目(汽车品牌):
实例
var cars = ["Porsche", "Volvo", "BMW"];
数组索引基于零,这意味着第一个项目是 [0],第二个项目是 [1],以此类推。
10.JavaScript 对象
JavaScript 对象用花括号来书写。
对象属性是 name:value(key:value) 对,由逗号分隔。
实例
var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};
上例中的对象(person)有四个属性:firstName、lastName、age 以及 eyeColor。
11.typeof 运算符
您可使用 JavaScript 的 typeof 来确定 JavaScript 变量的类型:
typeof 运算符返回变量或表达式的类型:
实例
typeof "" // 返回 "string"
typeof 11 // 返回nubmer
typeof 运算符对数组返回 "object",因为在 JavaScript 中数组属于对象。
12.undefined
在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。
实例
var person; // 值是 undefined,类型是 undefined
任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。
实例
person = undefined; // 值是 undefined,类型是 undefined
13.空值
空值与 undefined 不是一回事。
空的字符串变量既有值也有类型。
实例
var car = ""; // 值是 "",类型是 "string"
Null
在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。
不幸的是,在 JavaScript 中,null 的数据类型是对象。
您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。
您可以通过设置值为 null 清空对象:
实例
var person = null; // 值是 null,但是类型仍然是对象
您也可以通过设置值为 undefined 清空对象:
实例
var person = undefined; // 值是 undefined,类型是 undefined
14.Undefined 与 Null 的区别
Undefined 与 null 的值相等,但类型不相等,转换数值不相等:
typeof undefined // undefined
typeof null // object
null === undefined // false
null == undefined // true
==和===区别:前者仅比较值是否相等,或者比较值和类型是否相等
15.原始数据
原始数据值是一种没有额外属性和方法的单一简单数据值。
typeof 运算符可返回以下原始类型之一:
?string
?number
?boolean
?undefined
实例
typeof "Bill" // 返回 "string"
typeof 3.14 // 返回 "number"
typeof true // 返回 "boolean"
typeof false // 返回 "boolean"
typeof x // 返回 "undefined" (假如 x 没有值)
16.复杂数据
typeof 运算符可返回以下两种类型之一:
?function
?object
typeof 运算符把对象、数组或 null 返回 object。
typeof 运算符不会把函数返回 object。
实例
typeof {name:'Bill', age:62} // 返回 "object"
typeof [1,2,3,4] // 返回 "object" (并非 "array",参见下面的注释)
typeof null // 返回 "object"
typeof 运算符把数组返回为 "object",因为在 JavaScript 中数组即对象。