From 9fe42a8922e6427f3bab16292571f0fb595868a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Tue, 25 Oct 2022 15:21:21 +0000 Subject: [PATCH 1/4] =?UTF-8?q?28=E8=A2=81=E8=B4=B5=E6=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁贵森 <3032059138@qq.com> --- ...\350\261\241\344\275\234\344\270\232.html" | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 "28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1024\345\257\271\350\261\241\344\275\234\344\270\232.html" diff --git "a/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1024\345\257\271\350\261\241\344\275\234\344\270\232.html" "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1024\345\257\271\350\261\241\344\275\234\344\270\232.html" new file mode 100644 index 0000000..2f1542e --- /dev/null +++ "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1024\345\257\271\350\261\241\344\275\234\344\270\232.html" @@ -0,0 +1,142 @@ + + + + + + + Document + + + + + + \ No newline at end of file -- Gitee From eae6822c27fd2d1d16b644047988c6e14d0ea54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Tue, 25 Oct 2022 15:21:38 +0000 Subject: [PATCH 2/4] =?UTF-8?q?28=E8=A2=81=E8=B4=B5=E6=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁贵森 <3032059138@qq.com> --- ...71\350\261\241\347\254\224\350\256\260.md" | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 "28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1024\345\257\271\350\261\241\347\254\224\350\256\260.md" diff --git "a/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1024\345\257\271\350\261\241\347\254\224\350\256\260.md" "b/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1024\345\257\271\350\261\241\347\254\224\350\256\260.md" new file mode 100644 index 0000000..4e91923 --- /dev/null +++ "b/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1024\345\257\271\350\261\241\347\254\224\350\256\260.md" @@ -0,0 +1,148 @@ +# 对象 + +## 1.概念 + +对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。 + +```js +var obj = { + foo: 'Hello', + bar: 'World' +}; +``` + +### 2.创建对象的方式 + +#### 2.1 new Object() 方法 + +```js +var person1 = new Object(); //创建了一个新的空的对象 + person1.name = "jimmy"; +``` + +#### 2.2字面量方式 + +```js +var obj = { + name:'jimmy' +} +``` + +#### 2.3工厂方法 + +```js +function createPerson(name,age){ + // 创建一个空对象 + var person = new Object(); + // 添加属性和方法,属性可以接受参数的值 + person.name = name; + person.age = age; + // 将对象作为函数的返回值 + return person; +} + // 想创建一个对象,可以调用工厂函数 + var p1 = createPerson("jimmy",18); +复制代码 +``` + +#### 2.4 构造函数 + +```js +function Person(name,age){ + this.name = name; + this.age = age; + this.sayHi = function () { + console.log("hello"); + }; +} +var p = new Person("jimmy",18); +``` + +### 3.获取属性的值 + +###### 3.1**使用 . 获取** + +```javascript +person.getFullName() +``` + +###### 3.2使用 ['']获取 + +```javascript +person.['QQ Number'] +``` + +##### 3.3添加属性 + +```javascript +//给person对象添加职业:title:'student'属性 +//添加'C#' 技能 +``` + +#### 4、对象解构 + +```js +let person = { + name:'Zoe', + age:27 +} +//不使用解构 +let personName = person.name, personAge = person.age + +//使用解构:可以在一个类似对象字面量的结构中,声明多个变量。同时执行多个赋值操作 +let {name:personName, age:personAge} = person; + +//让变量直接使用属性名称 +let {name,age} = person + +log(personName,personAge) + +``` + +​ 解构赋值不一定需要与对象的属性匹配。赋值的时候可以忽略某些属性,而如果引用的属性不存在,则为undefined。此时可以在解构的同时定义默认值 + +```js +let {name, job} = person //此时没有job属性 +let {nam, job='student'} //设定默认值 +``` + +​ 解构并不要求变量必须在解构表达式声明,如果是事先给的,则必须包含在一对括号中 + +```js +let personName, personAge; +({name:personName,age:personAge} = person ) +``` + +还可以使用嵌套解构获取 + +### 5.属性的查看 + +查看一个对象本身的所有属性,可以使用Object.keys方法。 + +```js +var obj = { + key1: 1, + key2: 2 +}; + +Object.keys(obj); +// ['key1', 'key2'] +``` + +### 6.属性的删除 + +delete命令用于删除对象的属性,删除成功后返回true。 + +```js +var obj = { p: 1 }; +Object.keys(obj) // ["p"] + +delete obj.p // true +obj.p // undefined +Object.keys(obj) // [] +``` + +上面代码中,delete命令删除对象obj的p属性。删除后,再读取p属性就会返回undefined,而且Object.keys方法的返回值也不再包括该属性。 + +注意,删除一个不存在的属性,delete不报错,而且返回true。 + -- Gitee From aba117a780abae76867e271a2b87548a599103ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Thu, 27 Oct 2022 03:20:13 +0000 Subject: [PATCH 3/4] =?UTF-8?q?28=E8=A2=81=E8=B4=B5=E6=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁贵森 <3032059138@qq.com> --- ...\347\261\273\344\275\234\344\270\232.html" | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 "28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1026\345\214\205\350\243\205\347\261\273\344\275\234\344\270\232.html" diff --git "a/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1026\345\214\205\350\243\205\347\261\273\344\275\234\344\270\232.html" "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1026\345\214\205\350\243\205\347\261\273\344\275\234\344\270\232.html" new file mode 100644 index 0000000..2f36905 --- /dev/null +++ "b/28\350\242\201\350\264\265\346\243\256/\344\275\234\344\270\232/2022-1026\345\214\205\350\243\205\347\261\273\344\275\234\344\270\232.html" @@ -0,0 +1,71 @@ + + + + + + + Document + + + + + \ No newline at end of file -- Gitee From 302693969a467d34827733ceded02c8df9739ca0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E8=B4=B5=E6=A3=AE?= <3032059138@qq.com> Date: Thu, 27 Oct 2022 03:20:30 +0000 Subject: [PATCH 4/4] =?UTF-8?q?28=E8=A2=81=E8=B4=B5=E6=A3=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 袁贵森 <3032059138@qq.com> --- ...05\347\261\273\347\254\224\350\256\260.md" | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 "28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1026\345\214\205\350\243\205\347\261\273\347\254\224\350\256\260.md" diff --git "a/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1026\345\214\205\350\243\205\347\261\273\347\254\224\350\256\260.md" "b/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1026\345\214\205\350\243\205\347\261\273\347\254\224\350\256\260.md" new file mode 100644 index 0000000..e9de6a9 --- /dev/null +++ "b/28\350\242\201\350\264\265\346\243\256/\347\254\224\350\256\260/2022-1026\345\214\205\350\243\205\347\261\273\347\254\224\350\256\260.md" @@ -0,0 +1,118 @@ +# 包装类 + +### 包装类: + +1. js有三个包装类 + + - Number、Boolean、String + +2. 所有的包装类都有 valueOf() 和 toString() 方法 + + - 基本上所有的对象 都有 valueOf() 和 toString() 方法 + - Math 和 Error 对象没有valueOf方法 + +3. 包装类才有 组包 和 拆包 + + - 巧记:组包是由简单变复杂,拆包是由复杂变简单 + + - 组包:**基本数据**类型 转成 **引用数据** 类型 + + - 显式组包:new 包装类() + - 隐式组包: + + ```ini + var test=1; + test.toString(); //'1' 这个过程就有隐式组包,因为只有对象才有方法 + 复制代码 + ``` + + - 拆包: **引用数据** 类型 转成 **基本数据** 类型 + + - 调用 包装类.valueOf() + + | 操作对象类型 | 返回值 | + | ---------------------- | ------------------------------------ | + | Boolean | 布尔值 | + | Number | 数字值 | + | String | 字符串 | + | ---------------------- | 以上的操作对象的valueOf方法 也叫拆包 | + | Array | 数组本身 | + | Date | 从1970年1月1日开始到现在的毫秒数 | + | Function | 函数本身 | + | Object | 对象本身(这也是默认情况) | + + - 隐式组包 和 隐式拆包 + + - var test = 1; test.toString(); // '1' 组包 test = new Number(test); + - typeof test;// number 隐式拆包了 + + - 显式组包 和 显式拆包 + + - test = new Number(test);// 组包 + - test = test.valueof();//拆包 + +#### Boolean + +- toString() 方法返回指定的布尔对象的字符串形式。 + +```javascript +var flag1 = new Boolean(true); +console.log(flag1.toString()); // "true" +var flag2 = new Boolean(1); +console.log(flag2.toString());// "true" +``` + +- valueOf() 方法返回一个Boolean对象的原始值 + +```javascript +var x = new Boolean(); +console.log(x.valueOf());// false +var y = new Boolean("Mozilla"); +console.log(y.valueOf());// true +``` + +#### Number + +- 一些方法和Global上的方法功能一样,一般都是用Global上的方法即可: + + ```javascript + //例如: Number.parseInt() 、Number.parseFloat() + var num = '23a3'; + Number.parseInt(num) // 23 + parseInt(num); // 23, Global上的parseInt() + ``` + +#### String 包装类 + +- String包装类 隐式 或 显式 组包以后可以使用一些String原型上的一些api + + - charAt(index) + + 方法从一个字符串中返回指定的字符。 + + - index默认为0 + - index大于字符串总长度,返回空字符串 + +- indexOf(searchValue[, fromIndex]) + + 查找字符串中是否存在某个字符串,并返回所在索引 。 + + - fromIndex 默认为0,从某个位置开始查找 + - 如果未找到该值,则返回-1 + +- lastIndexOf 和indexOf类似,是查找最后一次出现的索引位置 + +- slice(begin[, end]) + + 方法提取一个字符串的一部分,并返回一新的字符串。 + + - begin 开始位置 + - end结束位置,默认值是从begin一直到字符串结束 + +- concat将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。 + +- toUpperCase() 将调用该方法的字符串值转换为大写形式,并返回。 + +- toLowerCase() 会将调用该方法的字符串值转为小写形式,并返回。 + +- trim() 方法会从一个字符串的两端删除空白字符 \ No newline at end of file -- Gitee