refactor: 目录结构调整

This commit is contained in:
qianguyihao 2020-05-14 21:41:53 +08:00
parent 5457093cfa
commit ebcb344cb3
16 changed files with 295 additions and 9 deletions

View File

@ -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));
``` ```
控制台输出 对象字面量的属性名可以加引号也可以不加建议不加如果要使用一些特殊的名字则必须加引号
属性名和属性值是一组一组的键值对结构键和值之间使用`:`连接多个值对之间使用`,`隔开如果一个属性的后面没有其他的属性了就不要写`,`因为它是对象的最后一个属性
![](http://img.smyhvae.com/20180125_1834.png)
### 方式二工厂模式 ### 方式二工厂模式

View 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);
}
```

View File

@ -5,7 +5,7 @@ MySQL 中的字段,主要有四种数据类型:
- 整型整数 - 整型整数
- 浮点型小数 - 小数
- 字符串类型 - 字符串类型
@ -74,7 +74,7 @@ todo。参考链接<https://blog.csdn.net/slyjit/article/details/54290486>
- **显示宽度只是在显示的时候改变数值的样式不会对原本的值进行更改** - **显示宽度只是在显示的时候改变数值的样式不会对原本的值进行更改**
- 显示宽度和数值类型的取值范围无关例如int(10) 他的取值范围然是(-2 147 483 6482 147 483 647) - 显示宽度和数值类型的取值范围无关例如int(10) 他的取值范围然是(-2 147 483 6482 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位有效数字
注意
- 浮点数超过精度范围会自动进行四舍五入
- 精度可以指定整数和小数部分比如