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
 | 
			
		||||
var o = {
 | 
			
		||||
	var obj2 = {
 | 
			
		||||
 | 
			
		||||
		name: "猪八戒",
 | 
			
		||||
		age: 13,
 | 
			
		||||
		gender: "男",
 | 
			
		||||
		test: {
 | 
			
		||||
			name: "沙僧"
 | 
			
		||||
		}
 | 
			
		||||
		sayName: function(){
 | 
			
		||||
			console.log('smyhvae');
 | 
			
		||||
		}
 | 
			
		||||
	};
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
例如:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
var obj = {
 | 
			
		||||
            name: "千古壹号",
 | 
			
		||||
            age: 26,
 | 
			
		||||
            isBoy: true,
 | 
			
		||||
            sayHi: function() {
 | 
			
		||||
            // 还可以存放一个签到的对象
 | 
			
		||||
            test: {
 | 
			
		||||
                id: 123,
 | 
			
		||||
                tel: 180
 | 
			
		||||
            }
 | 
			
		||||
		    //我们还可以在对象中增加一个方法。以后可以通过obj.sayName()的方式调用这个方法
 | 
			
		||||
            sayName: function() {
 | 
			
		||||
                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 num2 int(3);
 | 
			
		||||
 | 
			
		||||
# 对比:普通写法
 | 
			
		||||
@ -116,6 +116,24 @@ alter table table_qiangu1 add num3 int;
 | 
			
		||||
参考链接:[MySql数据库 数值类型的显示宽度](https://juejin.im/post/5b24a2c251882574d73c6f82)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## 小数
 | 
			
		||||
 | 
			
		||||
MySQL 中的小数分为两大类:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
浮点型的数据分为两种:
 | 
			
		||||
 | 
			
		||||
- 单精度:float,使用4个字节存储,精度范围为6-7位有效数字。
 | 
			
		||||
 | 
			
		||||
- 双精度:double,使用8个字节存储,精度范围为14-15位有效数字。
 | 
			
		||||
 | 
			
		||||
注意:
 | 
			
		||||
 | 
			
		||||
- 浮点数超过精度范围会自动进行四舍五入。
 | 
			
		||||
 | 
			
		||||
- 精度可以指定整数和小数部分。比如
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user