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