| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,7 +1,7 @@ | |||
| 1 | 1 | # JavaScript学习记录 | |
| 2 | 2 | ||
| 3 | 3 | > 总结内容主要都是红宝书中阅读整理 | |
| 4 | - > 其实都推荐前端学习一下此书: | ||
| 4 | + > 不管在哪里看文章都推荐前端学习此书可想而知本书的受欢迎程度: | ||
| 5 | 5 | > | |
| 6 | 6 | >《JavaScript高级程序设计》 [美] Nicholas C.Zakas 著 | |
| 7 | 7 | > | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -4,6 +4,39 @@ | |||
| 4 | 4 | 引用类型的值(对象)是引用类型的一个实例。引用类型是一种数据结构,用于将数据和功能组织在一起。 | |
| 5 | 5 | ECMAScript 提供了很多原生引用类型。 | |
| 6 | 6 | ||
| 7 | + | ||
| 8 | + ## 目录 | ||
| 9 | + | ||
| 10 | + JavaScript 引用数据类型 | ||
| 11 | + | ||
| 12 | + - 1、Object类型 | ||
| 13 | + - 1.1、创建对象的方式 | ||
| 14 | + - 1.2、读取对象属性 | ||
| 15 | + - 2、Array类型 | ||
| 16 | + - 2.1、创建方式 | ||
| 17 | + - 2.2、读取方式 | ||
| 18 | + - 2.3、检测数组 | ||
| 19 | + - 2.4、转换方法 | ||
| 20 | + - 2.5、栈方法 | ||
| 21 | + - 2.6、队列方法 | ||
| 22 | + - 2.7、栈、队列小结 | ||
| 23 | + - 1. 栈的使用 | ||
| 24 | + - 2. 队列的使用 | ||
| 25 | + - 2.7、重排序方法 | ||
| 26 | + - 2.8、操作方法 | ||
| 27 | + - 1. concat() 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 | ||
| 28 | + - 2. slice() 返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。原始数组不会被修改。 | ||
| 29 | + - 3. splice() 通过删除现有元素和/或添加新元素来更改一个数组的内容。 | ||
| 30 | + - 2.9、位置方法 | ||
| 31 | + - 1. indexOf()、lastIndexOf() 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。indexOf() 从数组开头向后查找, lastIndexOf() 从数组末尾开始向前查找。 | ||
| 32 | + - 2. 使用场景 | ||
| 33 | + - 2.10、迭代方法 | ||
| 34 | + | ||
| 35 | + | ||
| 36 | + | ||
| 37 | + | ||
| 38 | + | ||
| 39 | + | ||
| 7 | 40 | ## 1、Object类型 | |
| 8 | 41 | ||
| 9 | 42 | ||
@@ -54,11 +87,11 @@ person["first name"] = "wjh" | |||
| 54 | 87 | ||
| 55 | 88 | ||
| 56 | 89 | ||
| 57 | - ### 2、Array类型 | ||
| 90 | + ## 2、Array类型 | ||
| 58 | 91 | ||
| 59 | 92 | ||
| 60 | 93 | ||
| 61 | - ### 2.1、数组创建方式 | ||
| 94 | + ### 2.1、创建方式 | ||
| 62 | 95 | ||
| 63 | 96 | ```javascript | |
| 64 | 97 | // 1、使用构造函数: | |
@@ -82,7 +115,7 @@ var values = [1, 2, ]; // 不推荐这样用,这样会创 | |||
| 82 | 115 | ||
| 83 | 116 | ||
| 84 | 117 | ||
| 85 | - ### 2.2、数组读取方式 | ||
| 118 | + ### 2.2、读取方式 | ||
| 86 | 119 | ||
| 87 | 120 | 使用索引读取 | |
| 88 | 121 | ||
@@ -127,7 +160,7 @@ if(Array.isArray(value)){ | |||
| 127 | 160 | ||
| 128 | 161 | ||
| 129 | 162 | ||
| 130 | - ### 2.4、数组转换方法 | ||
| 163 | + ### 2.4、转换方法 | ||
| 131 | 164 | ||
| 132 | 165 | 所有对象都具有 toLocaleString()、toString() 和 valueOf() 方法。 | |
| 133 | 166 | ||
@@ -181,7 +214,7 @@ alert(persons.toLocaleString()); // 1 => toLocaleString ,2 => toLocaleStr | |||
| 181 | 214 | ||
| 182 | 215 | ||
| 183 | 216 | ||
| 184 | - ### 2.5、数组栈方法 | ||
| 217 | + ### 2.5、栈方法 | ||
| 185 | 218 | ||
| 186 | 219 | 什么是栈? | |
| 187 | 220 | ||
@@ -205,7 +238,7 @@ console.log(person) | |||
| 205 | 238 | ||
| 206 | 239 | ||
| 207 | 240 | ||
| 208 | - ### 2.6、数组队列方法 | ||
| 241 | + ### 2.6、队列方法 | ||
| 209 | 242 | ||
| 210 | 243 | 什么是队列? | |
| 211 | 244 | - 队列是一种 **FIFO(First-In-First-Out 先进先出)** 的数据结构。 | |
@@ -230,7 +263,7 @@ console.log(person) // 移除后的数组 [ 'D | |||
| 230 | 263 | ||
| 231 | 264 | ### 2.7、栈、队列小结: | |
| 232 | 265 | ||
| 233 | - #### 栈的使用 | ||
| 266 | + #### 1. 栈的使用 | ||
| 234 | 267 | ||
| 235 | 268 | 正向栈使用:push() pop() 从尾部进一个,再从尾部出一个 | |
| 236 | 269 | ||
@@ -239,7 +272,7 @@ console.log(person) // 移除后的数组 [ 'D | |||
| 239 | 272 |  | |
| 240 | 273 | ||
| 241 | 274 | ||
| 242 | - #### 队列的使用 | ||
| 275 | + #### 2. 队列的使用 | ||
| 243 | 276 | ||
| 244 | 277 | 正向队列使用:push() shift() 从尾部先进一个,再从头部出去一个 | |
| 245 | 278 | ||
@@ -300,7 +333,7 @@ function compare(val1, val2) { | |||
| 300 | 333 | ||
| 301 | 334 | ||
| 302 | 335 | ||
| 303 | - ### 2.8 数组操作方法 | ||
| 336 | + ### 2.8、操作方法 | ||
| 304 | 337 | ||
| 305 | 338 | #### 1. concat() 用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。 | |
| 306 | 339 | ||
@@ -366,14 +399,14 @@ console.log(result3); // 返回值:[ 'Siri' ] | |||
| 366 | 399 | ||
| 367 | 400 | 上述示例演示可以看到:splice 方法会改变原数组内容;并且可实现 增、删、改操作(改操作实质就是:删除后增加)。 | |
| 368 | 401 | ||
| 369 | - splice 的返回值也可以从上面示例看到,如果有删除元素就会返回一个数组,包含从原始数组中删除的项(没有删除就反悔一个空数组)。 | ||
| 402 | + splice 的返回值也可以从上面示例看到,如果有删除元素就会返回一个数组,包含从原始数组中删除的项(没有删除就返回一个空数组)。 | ||
| 370 | 403 | ||
| 371 | 404 | ||
| 372 | - ### 2.9 位置方法 | ||
| 405 | + ### 2.9、位置方法 | ||
| 373 | 406 | ||
| 374 | 407 | 数组位置方法有两个: indexOf() 和 lastIndexOf()。 | |
| 375 | 408 | ||
| 376 | - #### `indexOf()`、`lastIndexOf()` 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。`indexOf()` 从数组开头向后查找, `lastIndexOf()` 从数组末尾开始向前查找。 | ||
| 409 | + #### 1. `indexOf()`、`lastIndexOf()` 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。`indexOf()` 从数组开头向后查找, `lastIndexOf()` 从数组末尾开始向前查找。 | ||
| 377 | 410 | ||
| 378 | 411 | 两个参数分别指定:要查找的元素、开始查找的位置。 | |
| 379 | 412 | ||
@@ -387,9 +420,9 @@ array.indexOf(2, -3); // 0 | |||
| 387 | 420 | ||
| 388 | 421 | ``` | |
| 389 | 422 | ||
| 390 | - #### 使用场景 | ||
| 423 | + #### 2. 使用场景 | ||
| 391 | 424 | ||
| 392 | - 1. 找出指定元素出现的所有位置 | ||
| 425 | + 1、找出指定元素出现的所有位置 | ||
| 393 | 426 | ||
| 394 | 427 | ```javascript | |
| 395 | 428 | var indices = []; | |
@@ -407,7 +440,7 @@ while (idx != -1) { | |||
| 407 | 440 | console.log(indices); // [ 1, 3, 5 ] | |
| 408 | 441 | ``` | |
| 409 | 442 | ||
| 410 | - 2. 判断一个元素是否在数组里,不在则更新数组 | ||
| 443 | + 2、判断一个元素是否在数组里,不在则更新数组 | ||
| 411 | 444 | ||
| 412 | 445 | ```javascript | |
| 413 | 446 | function updateBrandCollection(brands, brand) { | |
@@ -427,13 +460,58 @@ updateBrandCollection(brands, '苹果'); // 苹果 已经存在于品牌集 | |||
| 427 | 460 | ``` | |
| 428 | 461 | ||
| 429 | 462 | ||
| 463 | + ### 2.10、迭代方法 | ||
| 430 | 464 | ||
| 465 | + - every():对数组中的每一项运行给定函数,如果该函数对每一项都返回 true, 则返回 true。 | ||
| 466 | + - some():对数组中的每一项运行给定函数,如果该函数对任一项返回 true,则返回 true。 | ||
| 467 | + - filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组。 | ||
| 431 | 468 | ||
| 469 | + - forEach():对数组中的每一项运行给定函数,没有返回值。 | ||
| 470 | + - map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。 | ||
| 432 | 471 | ||
| 433 | 472 | ||
| 434 | 473 | ||
| 474 | + ```javascript | ||
| 475 | + var numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]; | ||
| 476 | + | ||
| 477 | + /** | ||
| 478 | + * 待传入的 给定的运行函数 | ||
| 479 | + * 此函数接收三个参数 | ||
| 480 | + * @param item 数据项的值 | ||
| 481 | + * @param index 该项在数组中的位置 | ||
| 482 | + * @param array 数组对象本身 | ||
| 483 | + * @return 返回值根据使用外部函数不同,影响不同 | ||
| 484 | + */ | ||
| 485 | + function givenFunc(item, index, array) { | ||
| 486 | + return item > 2; | ||
| 487 | + } | ||
| 488 | + | ||
| 489 | + /** | ||
| 490 | + * every 顾名思义,必须每一项都满足 给定函数 才返回true,否则返回 false。可以类比 运算符:"&" | ||
| 491 | + * @type {boolean} | ||
| 492 | + */ | ||
| 493 | + var everyResult = numbers.every(givenFunc) | ||
| 494 | + console.log(everyResult) // false | ||
| 495 | + | ||
| 435 | 496 | ||
| 497 | + /** | ||
| 498 | + * some 只要有一项 返回true,就返回true。 可以类比 运算符:"|" | ||
| 499 | + * @type {boolean} | ||
| 500 | + */ | ||
| 501 | + var someResult = numbers.some(givenFunc) | ||
| 502 | + console.log(someResult) // true | ||
| 503 | + | ||
| 504 | + | ||
| 505 | + /** | ||
| 506 | + * filter 就是过滤 按照给定函数过滤,满足条件就加入返回结果数组,最后返回满足条件的所有项组成的数组 | ||
| 507 | + * @type {Array.<number>} | ||
| 508 | + */ | ||
| 509 | + var filterResult = numbers.filter(givenFunc) | ||
| 510 | + console.log(filterResult) // [ 3, 4, 5, 4, 3 ] | ||
| 511 | + | ||
| 512 | + ``` | ||
| 436 | 513 | ||
| 514 | + 以上示例演示了:every、some、filter 三个方法的使用,这三个方法主要通过给定函数判断数组每一项是否符合我们的条件 | ||
| 437 | 515 | ||
| 438 | 516 | ||
| 439 | 517 | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments