Skip to content

Commit 7b530d3

Browse files
committed
update:js的数据类型之String和Number
1 parent 90afaf8 commit 7b530d3

File tree

2 files changed

+71
-33
lines changed

2 files changed

+71
-33
lines changed

03-JavaScript基础/01-JavaScript语法基础:JS简介.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
55
> 以下是正文。
66
7-
## JavaScript简介
7+
## JavaScript背景
88

99
Web前端有三层:
1010

@@ -20,7 +20,7 @@ JavaScript是世界上用的最多的**脚本语言**。
2020

2121
JavaScript诞生于**1995年**。布兰登 • 艾奇(Brendan Eich,1961年~),1995年在网景公司,发明的JavaScript。
2222

23-
JavaScript是由**网景**公司发明,起初命名为LiveScript,后来由于SUN公司的介入更名为了JavaScript
23+
JavaScript是由**网景**公司发明,起初命名为LiveScript,后来由于SUN公司的介入更名为了JavaScript
2424

2525
> 备注:由于当时Java这个语言特别火,所以为了傍大牌,就改名为JavaScript。如同“北大”和“北大青鸟”的关系。“北大青鸟”就是傍“北大”大牌。
2626
@@ -32,15 +32,15 @@ ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英
3232

3333
JavaScript是由公司开发而成的,问题是不便于其他的公司拓展和使用。所以欧洲的这个ECMA的组织,牵头制定JavaScript的标准,取名为ECMAScript。
3434

35-
简单来说,**ECMAScript不是一门语言,而是一个标准**符合这个标准的比较常见的有:JavaScript、Action Script(Flash中用的语言)。就是说,你JavaScript学完了,Flash中的程序也就轻而易举了。
35+
简单来说,**ECMAScript不是一门语言,而是一个标准**
3636

37-
ECMAScript在2015年6月,发布了ECMAScript 6版本,语言的能力更强(也包含了很多新特性)。但是,浏览器的厂商不能那么快去追上这个标准
37+
ECMAScript在2015年6月,发布了ECMAScript 6版本(ES6),语言的能力更强(也包含了很多新特性)。但是,浏览器的厂商不会那么快去追上这个标准,需要时间
3838

3939
### JavaScript的发展:蒸蒸日上
4040

41-
2003年之前,JavaScript被认为“牛皮鲜”,用来制作页面上的广告,弹窗、漂浮的广告。什么东西让人烦,什么东西就是JavaScript开发的。所以浏览器就推出了屏蔽广告功能
41+
2003年之前,JavaScript被认为“牛皮鲜”,用来制作页面上的广告,弹窗、漂浮的广告。什么东西让人烦,什么东西就是JavaScript开发的。所以很多浏览器就推出了屏蔽广告功能
4242

43-
2004年,JavaScript命运开始改变那一年,**谷歌公司开始带头使用Ajax技术**,Ajax技术就是JavaScript的一个应用。并且,那时候人们逐渐开始提升用户体验了。Ajax有一些应用场景。比如,当我们在百度搜索框搜文字时,输入框下方的智能提示,可以通过Ajax实现。比如,当我们注册网易邮箱时,能够及时发现用户名是否被占用,而不用调到另外一个页面。
43+
2004年,JavaScript命运开始改变那一年,**谷歌公司开始带头使用Ajax技术**,Ajax技术就是JavaScript的一个应用。并且,那时候人们逐渐开始提升用户体验了。Ajax有一些应用场景。比如,当我们在百度搜索框搜文字时,输入框下方的智能提示,可以通过Ajax实现。比如,当我们注册网易邮箱时,能够及时发现用户名是否被占用,而不用调到另外一个页面。
4444

4545
2007年乔布斯发布了第一款iPhone,这一年开始,用户就多了上网的途径,就是用移动设备上网。
4646
**JavaScript在移动页面中,也是不可或缺的**。并且这一年,互联网开始标准化,按照W3C规则三层分离,JavaScript越来越被重视。
@@ -54,13 +54,13 @@ ECMAScript在2015年6月,发布了ECMAScript 6版本,语言的能力更强
5454
虽然目前WebApp在功能和性能上的体验远不如Native App,但是“WebApp慢慢取代Native App”很有可能是未来的趋势。
5555

5656

57-
## JavaScript编程相关
57+
## JavaScript介绍
5858

5959
### JavaScript入门易学性
6060

6161
- JavaScript对初学者比较友好。
6262

63-
- JavaScript是有界面效果的(比如C语言只有白底黑字)。
63+
- JavaScript是有界面效果的(比如C语言却只有白底黑字)。
6464

6565
- JavaScript是**弱变量类型**的语言,变量只需要用var来声明。而Java中变量的声明,要根据变量的类型来定义。
6666

@@ -74,7 +74,7 @@ ECMAScript在2015年6月,发布了ECMAScript 6版本,语言的能力更强
7474
boolean a;
7575
```
7676

77-
而JavaScript中,只用定义一个变量
77+
而JavaScript中,只需要用一种方式来定义
7878

7979
```JavaScript
8080
var a;
@@ -318,9 +318,9 @@ JS代码如下:
318318

319319
## 我的公众号
320320

321-
想学习<font color=#0000ff>**代码之外的软技能**</font>?不妨关注我的微信公众号:**生命团队**(id:`vitateam`)。
321+
想学习<font color=#0000ff>**代码之外的软技能**</font>?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。
322322

323323
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
324324

325-
![](http://img.smyhvae.com/2016040102.jpg)
325+
![](http://img.smyhvae.com/20160401_01.jpg)
326326

03-JavaScript基础/02-JavaScript语法基础:变量.md

+60-22
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ implements、import、int、interface、long、native、package、private、prot
9999
var a = 888; //变量2
100100
```
101101

102-
我们来整理一下变量的命名规则
102+
我们来整理一下**变量的命名规则**
103103

104-
1.驼峰命名规则:getElementById/matherAndFather/aaaOrBbbAndCcc
104+
1.建议用驼峰命名规则:getElementById/matherAndFather/aaaOrBbbAndCcc
105105

106106
2.变量命名必须以字母或是下标符号”_”或者”$”为开头。
107107

@@ -111,17 +111,21 @@ implements、import、int、interface、long、native、package、private、prot
111111

112112
5.不用使用脚本语言中保留的**关键字****保留字**作为变量名。
113113

114-
6.变量名区分大小写(javascript是区分大小写的语言)
114+
6.变量名区分大小写(javascript是区分大小写的语言)
115115

116-
7.汉语可以作为变量名。但是不建议使用,因为 low
116+
7.汉语可以作为变量名。但是不建议使用,因为 low
117117

118118

119119
## 标识符
120120

121-
**标识符**在JS中所有的可以由我们自主命名的都可以称之为标识符
121+
**标识符**在JS中所有的可以由我们**自主命名**的都可以称之为标识符
122122

123123
例如:变量名、函数名、属性名都是属于标识符。
124124

125+
**标识符的命名规则**和变量的命令规则是一样的。看上面一段就可以了。
126+
127+
重点要注意的是:标识符不能使用脚本语言中保留的**关键字****保留字**。如下。
128+
125129
**关键字**
126130

127131
![](http://img.smyhvae.com/20180714_1421.png)
@@ -140,18 +144,24 @@ implements、import、int、interface、long、native、package、private、prot
140144

141145
变量里面能够存储数字、字符串等。变量会自动的根据存储内容的类型不同,来决定自己的类型。
142146

143-
数据类型指的就是字面量的类型,**在JS中一共有六种数据类型**
147+
**在JS中一共有六种数据类型**
144148

145149

146150
- **基本数据类型(值类型)**:String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义。
147151

148152
- **引用数据类型(引用类型)**:Object 对象。
149153

150-
PS:内置对象function、Array、Date、RegExp、Error等都是属于Object。
154+
注意:内置对象function、Array、Date、RegExp、Error等都是属于Object类型。也就是说,除了那五种基本数据类型之外,其他的,都称之为 Object类型。
155+
156+
> 面试问:引用数据类型有几种?
157+
158+
> 面试答:只有一种,即 Object 类型。
159+
160+
**数据类型之间最大的区别**
151161

152-
基本数据类型:参数赋值的时候,传数值。
162+
- 基本数据类型:参数赋值的时候,传数值。
153163

154-
引用数据类型:参数赋值的时候,传地址(修改的同一片内存空间)。
164+
- 引用数据类型:参数赋值的时候,传地址(修改的同一片内存空间)。
155165

156166
接下来,我们详细讲一下基本数据类型。
157167

@@ -202,8 +212,12 @@ PS:内置对象function、Array、Date、RegExp、Error等都是属于Object
202212

203213
- `\n` 表示换行
204214

215+
- `\r` 表示回车
216+
205217
- `\t` 表示制表符
206218

219+
- `\b` 表示空格
220+
207221
- `\\` 表示`\`
208222

209223
举例:
@@ -224,6 +238,38 @@ PS:内置对象function、Array、Date、RegExp、Error等都是属于Object
224238
\\\
225239
```
226240

241+
将其他数值转换为字符串有三种方式:
242+
243+
- 拼串
244+
245+
- toString()
246+
247+
- String()
248+
249+
250+
### 补充知识:typeof 运算符
251+
252+
`typeof()`表示“**获取变量的类型**”,返回的是小写,语法为:
253+
254+
```
255+
typeof 变量
256+
```
257+
258+
**返回结果**
259+
260+
- `typeof 数值`的返回结果:number
261+
262+
- `typeof 字符串`的返回结果:string
263+
264+
- `typeof 布尔型`的返回结果:boolean
265+
266+
- `typeof undefined`的返回结果:undefined
267+
268+
- `typeof null`的返回结果:object
269+
270+
在JavaScript中,只要是数,就是 number 数值型的。无论整浮、浮点数(即小数)、无论大小、无论正负,都是 number 类型的。
271+
272+
227273
## 数值型:Number
228274

229275
在JS中所有的数值都是Number类型,包括整数和浮点数(小数)。
@@ -239,15 +285,6 @@ PS:内置对象function、Array、Date、RegExp、Error等都是属于Object
239285
number
240286
```
241287

242-
**补充知识:**
243-
244-
`typeof()`表示“**获取变量的类型**”,返回的是小写,语法为:
245-
246-
```
247-
typeof 变量
248-
```
249-
250-
在JavaScript中,只要是数,就是 number 数值型的。无论整浮、浮点数(即小数)、无论大小、无论正负,都是 number 类型的。
251288

252289
**数值范围:**
253290

@@ -263,7 +300,8 @@ typeof 变量
263300

264301
- 无穷小(负无穷):-Infinity
265302

266-
注意,使用`typeof`检查Infinity也会返回number。
303+
注意:`typeof Infinity`的返回结果是number。
304+
267305

268306
**NaN和isNaN()函数:**
269307

@@ -272,14 +310,14 @@ typeof 变量
272310
```javascript
273311
console.log("abc" / 18); //结果是NaN
274312

275-
console.log("abc" * "abcd"); //按理说,字符串相乘是没有结果的,但如果你非要让JS去算,它就一定会给你一个结果。结果是结果是NaN
313+
console.log("abc" * "abcd"); //按理说,字符串相乘是没有结果的,但如果你非要让JS去算,它就一定会给你一个结果。结果是NaN
276314
```
277315

278316
注意:`typeof NaN`的返回结果是number。
279317

280318
Undefined和任何数值计算的结果为NaN。NaN 与任何值都不相等,包括 NaN 本身。
281319

282-
(2)isNaN() :任何不能被转换为数值的值都会导致这个函数返回 true。
320+
(2)isNaN() :任何不能被转换为数值的值,都会让这个函数返回 true。
283321

284322
```javascript
285323
isNaN(NaN);// true
@@ -290,7 +328,7 @@ Undefined和任何数值计算的结果为NaN。NaN 与任何值都不相等,
290328

291329
**浮点数的运算**
292330

293-
在JS中,整数的运算可以很精确,但是**小数的运算,可能会得到一个不精确的结果**。所以,千万不要使用JS进行对精确度要求比较高的运算。
331+
在JS中,整数的运算**基本**可以保证精确;但是**小数的运算,可能会得到一个不精确的结果**。所以,千万不要使用JS进行对精确度要求比较高的运算。
294332

295333
如下:
296334

0 commit comments

Comments
 (0)