refactor: 目录结构调整
This commit is contained in:
		
							parent
							
								
									5457093cfa
								
							
						
					
					
						commit
						ebcb344cb3
					
				@ -1,6 +1,6 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 > 在看本文之前,可以先复习前面的一篇文章:《04-JavaScript基础/09-对象简介和对象的基本操作.md》
 | 
					 > 在看本文之前,可以先复习前面的一篇文章:《04-JavaScript基础/09-对象简介.md》
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## 创建自定义对象的几种方法
 | 
					## 创建自定义对象的几种方法
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -12,24 +12,62 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- 值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)。
 | 
					- 值:相当于属性值,可以是任意类型的值(数字类型、字符串类型、布尔类型,函数类型等)。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					使用对象字面量来创建一个对象,非常简洁,举例如下::
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						var obj = {};
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					使用对象字面量,可以在创建对象时,直接指定对象中的属性。语法:{属性名:属性值,属性名:属性值....}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
例如:
 | 
					例如:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
```javascript
 | 
					```javascript
 | 
				
			||||||
var o = {
 | 
						var obj2 = {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							name: "猪八戒",
 | 
				
			||||||
 | 
							age: 13,
 | 
				
			||||||
 | 
							gender: "男",
 | 
				
			||||||
 | 
							test: {
 | 
				
			||||||
 | 
								name: "沙僧"
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							sayName: function(){
 | 
				
			||||||
 | 
								console.log('smyhvae');
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					例如:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					var obj = {
 | 
				
			||||||
            name: "千古壹号",
 | 
					            name: "千古壹号",
 | 
				
			||||||
            age: 26,
 | 
					            age: 26,
 | 
				
			||||||
            isBoy: true,
 | 
					            isBoy: true,
 | 
				
			||||||
            sayHi: function() {
 | 
					            // 还可以存放一个签到的对象
 | 
				
			||||||
 | 
					            test: {
 | 
				
			||||||
 | 
					                id: 123,
 | 
				
			||||||
 | 
					                tel: 180
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
							    //我们还可以在对象中增加一个方法。以后可以通过obj.sayName()的方式调用这个方法
 | 
				
			||||||
 | 
					            sayName: function() {
 | 
				
			||||||
                console.log(this.name);
 | 
					                console.log(this.name);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
console.log(o);
 | 
					console.log(JSON.stringify(obj));
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
控制台输出:
 | 
					对象字面量的属性名可以加引号也可以不加,建议不加。如果要使用一些特殊的名字,则必须加引号。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					属性名和属性值是一组一组的键值对结构,键和值之间使用`:`连接,多个值对之间使用`,`隔开。如果一个属性的后面没有其他的属性了,就不要写`,`,因为它是对象的最后一个属性。
 | 
				
			||||||
 | 
					
 | 
				
			||||||

 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
### 方式二:工厂模式
 | 
					### 方式二:工厂模式
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										230
									
								
								04-JavaScript基础/22-对象的基本操作.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										230
									
								
								04-JavaScript基础/22-对象的基本操作.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,230 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					## 对象的基本操作
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 创建对象
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					使用new关键字调用的函数,是构造函数constructor。**构造函数是专门用来创建对象的函数**。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					例如:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						var obj = new Object();
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					记住,使用`typeof`检查一个对象时,会返回`object`。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					关于常见对象的更多方式,可以看上一篇文章《对象的创建&构造函数》。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 向对象中添加属性
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					在对象中保存的值称为属性。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					向对象添加属性的语法:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						对象.属性名 = 属性值;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					    var obj = new Object();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //向obj中添加一个name属性
 | 
				
			||||||
 | 
					    obj.name = "孙悟空";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //向obj中添加一个gender属性
 | 
				
			||||||
 | 
					    obj.gender = "男";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //向obj中添加一个age属性
 | 
				
			||||||
 | 
					    obj.age = 18;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    console.log(JSON.stringify(obj)); // 将 obj 以字符串的形式打印出来
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					打印结果:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
						{
 | 
				
			||||||
 | 
							"name":"孙悟空",
 | 
				
			||||||
 | 
							"gender":"男",
 | 
				
			||||||
 | 
							"age":18
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 获取对象中的属性
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**方式1**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					语法:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						对象.属性名
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					如果获取对象中没有的属性,不会报错而是返回`undefined`。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					    var obj = new Object();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //向obj中添加一个name属性
 | 
				
			||||||
 | 
					    obj.name = "孙悟空";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //向obj中添加一个gender属性
 | 
				
			||||||
 | 
					    obj.gender = "男";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    //向obj中添加一个age属性
 | 
				
			||||||
 | 
					    obj.age = 18;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // 获取对象中的属性,并打印出来
 | 
				
			||||||
 | 
					    console.log(obj.gender); // 打印结果:男
 | 
				
			||||||
 | 
					    console.log(obj.color);  // 打印结果:undefined
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**方式2**:可以使用`[]`这种形式去操作属性
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					对象的属性名不强制要求遵守标识符的规范,不过我们尽量要按照标识符的规范去做。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					但如果确实要使用特殊的属性名,就不能采用`.`的方式来操作对象的属性。比如说,`123`这种属性名,如果我们直接写成`obj.123 = 789`来操作属性,是会报错的。那怎么办呢?办法如下:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					语法格式如下:(读取时,也是采用这种方式)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					// 注意,括号里的属性名,必须要加引号
 | 
				
			||||||
 | 
					对象['属性名'] = 属性值
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					上面这种语法格式,举例如下:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					 obj['123'] = 789;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					**重要**:使用`[]`这种形式去操作属性,更加的灵活,因为,我们可以在`[]`中直接传递一个**变量**。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 修改对象的属性值
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					语法:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						对象.属性名 = 新值
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						obj.name = "tom";
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### 删除对象的属性
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					语法:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						delete obj.name;
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### in 运算符
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					通过该运算符可以检查一个对象中是否含有指定的属性。如果有则返回true,没有则返回false。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					语法:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						"属性名" in 对象
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
						//检查obj中是否含有name属性
 | 
				
			||||||
 | 
						console.log("name" in obj);
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					我们平时使用的对象不一定是自己创建的,可能是别人提供的,这个时候,in 运算符可以派上用场。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 遍历对象中的属性:for ... in
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					语法:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					for (var 变量 in 对象名) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					解释:对象中有几个属性,循环体就会执行几次。每次执行时,会将对象中的**每个属性的 属性名 赋值给变量**。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					语法举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```javascript
 | 
				
			||||||
 | 
					for (var key in obj) {
 | 
				
			||||||
 | 
						console.log(key); // 这里的 key 是:对象属性的键
 | 
				
			||||||
 | 
						console.log(obj[key]); // 这里的 obj[key] 是:对象属性的值
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					举例:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```html
 | 
				
			||||||
 | 
					<!DOCTYPE html>
 | 
				
			||||||
 | 
					<html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<head>
 | 
				
			||||||
 | 
						<meta charset="UTF-8">
 | 
				
			||||||
 | 
						<title></title>
 | 
				
			||||||
 | 
						<script type="text/javascript">
 | 
				
			||||||
 | 
							var obj = {
 | 
				
			||||||
 | 
								name: "smyhvae",
 | 
				
			||||||
 | 
								age: 26,
 | 
				
			||||||
 | 
								gender: "男",
 | 
				
			||||||
 | 
								address: "shenzhen",
 | 
				
			||||||
 | 
					            sayHi: function() {
 | 
				
			||||||
 | 
					                console.log(this.name);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// 遍历对象中的属性
 | 
				
			||||||
 | 
							for (var key in obj) {
 | 
				
			||||||
 | 
								console.log("属性名:" + key);
 | 
				
			||||||
 | 
								console.log("属性值:" + obj[key]); // 注意,因为这里的属性名 keu 是变量,所以,如果想获取属性值,不能写成 obj.key,而是要写成 obj[key]
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						</script>
 | 
				
			||||||
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<body>
 | 
				
			||||||
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					</html>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					打印结果:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					属性名:name
 | 
				
			||||||
 | 
					属性值:smyhvae
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					属性名:age
 | 
				
			||||||
 | 
					属性值:26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					属性名:gender
 | 
				
			||||||
 | 
					属性值:男
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					属性名:address
 | 
				
			||||||
 | 
					属性值:shenzhen
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					属性名:sayHi
 | 
				
			||||||
 | 
					属性值:function() {
 | 
				
			||||||
 | 
					                    console.log(this.name);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
@ -5,7 +5,7 @@ MySQL 中的字段,主要有四种数据类型:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- 整型(整数)
 | 
					- 整型(整数)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 浮点型(小数)
 | 
					- 小数
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 字符串类型
 | 
					- 字符串类型
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -74,7 +74,7 @@ todo。参考链接:<https://blog.csdn.net/slyjit/article/details/54290486>
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- **显示宽度只是在显示的时候改变数值的样式,不会对原本的值进行更改**。
 | 
					- **显示宽度只是在显示的时候改变数值的样式,不会对原本的值进行更改**。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- 显示宽度和数值类型的取值范围无关。例如int(10) 他的取值范围任然是(-2 147 483 648,2 147 483 647)。
 | 
					- 显示宽度和数值类型的取值范围无关。例如int(10) 他的取值范围依然是(-2 147 483 648,2 147 483 647)。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
**零填充的注意事项**:
 | 
					**零填充的注意事项**:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -97,7 +97,7 @@ CREATE TABLE table_qiangu1 (
 | 
				
			|||||||
# 显示宽度有效(正确写法)
 | 
					# 显示宽度有效(正确写法)
 | 
				
			||||||
alter table table_qiangu1 add num1 int(3) zerofill;
 | 
					alter table table_qiangu1 add num1 int(3) zerofill;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 对比:显示宽度无效
 | 
					# 对比:普通写法,显示宽度无效
 | 
				
			||||||
alter table table_qiangu1 add num2 int(3);
 | 
					alter table table_qiangu1 add num2 int(3);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# 对比:普通写法
 | 
					# 对比:普通写法
 | 
				
			||||||
@ -116,6 +116,24 @@ alter table table_qiangu1 add num3 int;
 | 
				
			|||||||
参考链接:[MySql数据库 数值类型的显示宽度](https://juejin.im/post/5b24a2c251882574d73c6f82)
 | 
					参考链接:[MySql数据库 数值类型的显示宽度](https://juejin.im/post/5b24a2c251882574d73c6f82)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## 小数
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					MySQL 中的小数分为两大类:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					浮点型的数据分为两种:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 单精度:float,使用4个字节存储,精度范围为6-7位有效数字。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 双精度:double,使用8个字节存储,精度范围为14-15位有效数字。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					注意:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 浮点数超过精度范围会自动进行四舍五入。
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- 精度可以指定整数和小数部分。比如
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user