From be7a08fc5332aa819b1330563b28b16dc62b4a81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=94=B0=E9=91=AB=E5=BC=BA?= <2559801285@qq.com> Date: Sun, 4 Dec 2022 19:57:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1108\346\212\275\345\245\226.md" | 185 -------- .../2022-10-10\346\225\260\347\273\204.md" | 0 .../2022-10-11\345\207\275\346\225\260.md" | 0 ...04\351\200\240\345\207\275\346\225\260.md" | 0 .../2022-10-13\345\257\271\350\261\241.md" | 0 ...33\345\210\266\350\275\254\346\215\242.md" | 0 ...\351\242\204\347\274\226\350\257\221AO.md" | 0 ...\351\242\204\347\274\226\350\257\221GO.md" | 0 ...34\347\224\250\345\237\237\351\223\276.md" | 0 .../2022-10-25\351\227\255\345\214\205.md" | 0 .../2022-10-26\345\216\237\345\236\213.md" | 0 ...27\345\216\237\345\236\213\351\223\276.md" | 0 .../2022-10-31\347\273\247\346\211\277.md" | 0 ...01\347\273\247\346\211\277\344\270\213.md" | 0 .../2022-11-02this.md" | 0 ...31\350\241\250\350\276\276\345\274\217.md" | 0 ...31\350\241\250\350\276\276\345\274\217.md" | 0 .../2022-11-08 BOW.md" | 0 ...76\347\244\272\346\266\210\345\244\261.md" | 85 ++++ ...13\344\273\266\347\273\203\344\271\240.md" | 251 +++++++++++ ...13\344\273\266\345\257\271\350\261\241.md" | 128 ++++++ ...47\344\270\216\345\205\203\347\264\240.md" | 77 ++++ .../2022-11-23\344\272\213\344\273\266.md" | 192 +++++++++ ...11\344\270\216\345\217\215\351\200\211.md" | 63 +++ ...21\351\200\211\346\213\251\345\231\250.md" | 137 ++++++ .../\347\254\224\350\256\260/10-02this.md" | 244 ----------- ...72\347\241\200\350\257\255\346\263\225.md" | 112 ----- .../10-10\346\225\260\347\273\204.md" | 297 ------------- .../10-11\345\207\275\346\225\260.md" | 199 --------- .../10-12\345\257\271\350\261\241.md" | 102 ----- ...16\345\214\205\350\243\205\347\261\273.md" | 131 ------ ...71\350\261\241\346\226\271\346\263\225.md" | 407 ------------------ ...19\351\242\204\347\274\226\350\257\221.md" | 84 ---- ...45\346\240\274\346\250\241\345\274\217.md" | 24 -- ...24\344\275\234\347\224\250\345\237\237.md" | 53 --- .../10-25\351\227\255\345\214\205.md" | 53 --- .../10-26\345\216\237\345\236\213.md" | 58 --- ...27\345\216\237\345\236\213\351\223\276.md" | 50 --- .../10-31\347\273\247\346\211\277.md" | 146 ------- ...01\347\273\247\346\211\277\344\270\213.md" | 201 --------- .../\347\254\224\350\256\260/11-02this.md" | 12 - ...31\350\241\250\350\276\276\345\274\217.md" | 70 --- ...17\344\270\216\345\274\202\345\270\270.md" | 161 ------- .../\347\254\224\350\256\260/11-08 BOW.md" | 56 --- .../\347\254\224\350\256\260/22-10-02this.md" | 244 ----------- ...16\345\214\205\350\243\205\347\261\273.md" | 9 +- .../\347\254\224\350\256\260/22-11-02this.md" | 234 +++++++++- .../22-11-16\344\272\213\344\273\266.md" | 204 +++++++++ ...17\344\272\213\344\273\266\346\265\201.md" | 141 ++++++ ...ry\351\200\211\346\213\251\345\231\250.md" | 90 ++++ ...47\344\270\216\345\205\203\347\264\240.md" | 137 ++++++ ...22-11-23jQuery\344\272\213\344\273\266.md" | 55 +++ ...13\344\273\266\345\257\271\350\261\241.md" | 22 + ...22-11-27jQuery\346\226\271\346\263\225.md" | 101 +++++ .../\347\254\224\350\256\260/22-11-29Ajax.md" | 93 ++++ .../22-12-01Ajax02.md" | 130 ++++++ 56 files changed, 2142 insertions(+), 2896 deletions(-) delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1108\346\212\275\345\245\226.md" rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1010\346\225\260\347\273\204.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-10\346\225\260\347\273\204.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1011\345\207\275\346\225\260.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-11\345\207\275\346\225\260.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1012\346\236\204\351\200\240\345\207\275\346\225\260.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-12\346\236\204\351\200\240\345\207\275\346\225\260.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1013\345\257\271\350\261\241.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-13\345\257\271\350\261\241.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1017set\344\270\216\350\277\233\345\210\266\350\275\254\346\215\242.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-17set\344\270\216\350\277\233\345\210\266\350\275\254\346\215\242.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1019\351\242\204\347\274\226\350\257\221AO.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-19\351\242\204\347\274\226\350\257\221AO.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1020\351\242\204\347\274\226\350\257\221GO.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-20\351\242\204\347\274\226\350\257\221GO.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1024\344\275\234\347\224\250\345\237\237\351\223\276.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-24\344\275\234\347\224\250\345\237\237\351\223\276.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1025\351\227\255\345\214\205.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-25\351\227\255\345\214\205.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1026\345\216\237\345\236\213.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-26\345\216\237\345\236\213.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1027\345\216\237\345\236\213\351\223\276.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-27\345\216\237\345\236\213\351\223\276.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1031\347\273\247\346\211\277.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-31\347\273\247\346\211\277.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1101\347\273\247\346\211\277\344\270\213.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-01\347\273\247\346\211\277\344\270\213.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1102this.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-02this.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1103\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-03\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" (100%) rename "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1108BOW.md" => "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-08 BOW.md" (100%) create mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-15\346\226\207\346\234\254\346\230\276\347\244\272\346\266\210\345\244\261.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-16\344\272\213\344\273\266\347\273\203\344\271\240.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-17\344\272\213\344\273\266\345\257\271\350\261\241.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-22\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-23\344\272\213\344\273\266.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-27\345\205\250\351\200\211\344\270\216\345\217\215\351\200\211.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/22-11-21\351\200\211\346\213\251\345\231\250.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-02this.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-06js\345\237\272\347\241\200\350\257\255\346\263\225.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-10\346\225\260\347\273\204.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-11\345\207\275\346\225\260.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-12\345\257\271\350\261\241.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-13\345\257\271\350\261\241\350\247\243\346\236\204\344\270\216\345\214\205\350\243\205\347\261\273.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-17\345\257\271\350\261\241\346\226\271\346\263\225.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-19\351\242\204\347\274\226\350\257\221.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-20\351\242\204\347\274\226\350\257\221\344\270\216\344\270\245\346\240\274\346\250\241\345\274\217.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-24\344\275\234\347\224\250\345\237\237.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-25\351\227\255\345\214\205.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-26\345\216\237\345\236\213.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-27\345\216\237\345\236\213\351\223\276.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-31\347\273\247\346\211\277.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-01\347\273\247\346\211\277\344\270\213.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-02this.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-03\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217\344\270\216\345\274\202\345\270\270.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-08 BOW.md" delete mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-10-02this.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-16\344\272\213\344\273\266.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-17\344\272\213\344\273\266\346\265\201.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-21jQuery\351\200\211\346\213\251\345\231\250.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-22jQuery\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-23jQuery\344\272\213\344\273\266.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-24jQuery\344\272\213\344\273\266\345\257\271\350\261\241.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-27jQuery\346\226\271\346\263\225.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-29Ajax.md" create mode 100644 "49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-12-01Ajax02.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1108\346\212\275\345\245\226.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1108\346\212\275\345\245\226.md" deleted file mode 100644 index e5d9525..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1108\346\212\275\345\245\226.md" +++ /dev/null @@ -1,185 +0,0 @@ -# 抽奖 - -```js - - - - - - - Document - - - - -
- - - - -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
翁章彬谢琰宸陈枫卢佳凯黄炜杰何睿吴守康黄楷钊陈烽杰
余金星刘嘉远周泽强洪灿芳薛晖吴明杰胡志文侯锟铖杨晨哲
陈志梁吴泳泰李雅芸詹源铠陈钰锋杨丰华曾鹏吴昊绩吴超
胡江雄谷兆明陈洋张平危振山达兴建张静叶小杰周飘
贺晋卓李涛赖杰林陈振国刘旭涛江嘉兴田鑫强范雅欢巫晨羿
- - -``` - -# 轮播 - -```js - - - - - - - - Document - - - - - - - -
- - -
-
- -
- - - -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1010\346\225\260\347\273\204.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-10\346\225\260\347\273\204.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1010\346\225\260\347\273\204.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-10\346\225\260\347\273\204.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1011\345\207\275\346\225\260.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-11\345\207\275\346\225\260.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1011\345\207\275\346\225\260.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-11\345\207\275\346\225\260.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1012\346\236\204\351\200\240\345\207\275\346\225\260.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-12\346\236\204\351\200\240\345\207\275\346\225\260.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1012\346\236\204\351\200\240\345\207\275\346\225\260.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-12\346\236\204\351\200\240\345\207\275\346\225\260.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1013\345\257\271\350\261\241.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-13\345\257\271\350\261\241.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1013\345\257\271\350\261\241.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-13\345\257\271\350\261\241.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1017set\344\270\216\350\277\233\345\210\266\350\275\254\346\215\242.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-17set\344\270\216\350\277\233\345\210\266\350\275\254\346\215\242.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1017set\344\270\216\350\277\233\345\210\266\350\275\254\346\215\242.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-17set\344\270\216\350\277\233\345\210\266\350\275\254\346\215\242.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1019\351\242\204\347\274\226\350\257\221AO.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-19\351\242\204\347\274\226\350\257\221AO.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1019\351\242\204\347\274\226\350\257\221AO.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-19\351\242\204\347\274\226\350\257\221AO.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1020\351\242\204\347\274\226\350\257\221GO.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-20\351\242\204\347\274\226\350\257\221GO.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1020\351\242\204\347\274\226\350\257\221GO.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-20\351\242\204\347\274\226\350\257\221GO.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1024\344\275\234\347\224\250\345\237\237\351\223\276.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-24\344\275\234\347\224\250\345\237\237\351\223\276.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1024\344\275\234\347\224\250\345\237\237\351\223\276.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-24\344\275\234\347\224\250\345\237\237\351\223\276.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1025\351\227\255\345\214\205.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-25\351\227\255\345\214\205.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1025\351\227\255\345\214\205.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-25\351\227\255\345\214\205.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1026\345\216\237\345\236\213.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-26\345\216\237\345\236\213.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1026\345\216\237\345\236\213.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-26\345\216\237\345\236\213.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1027\345\216\237\345\236\213\351\223\276.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-27\345\216\237\345\236\213\351\223\276.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1027\345\216\237\345\236\213\351\223\276.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-27\345\216\237\345\236\213\351\223\276.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1031\347\273\247\346\211\277.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-31\347\273\247\346\211\277.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1031\347\273\247\346\211\277.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-10-31\347\273\247\346\211\277.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1101\347\273\247\346\211\277\344\270\213.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-01\347\273\247\346\211\277\344\270\213.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1101\347\273\247\346\211\277\344\270\213.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-01\347\273\247\346\211\277\344\270\213.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1102this.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-02this.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1102this.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-02this.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1103\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-03\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1103\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-03\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1108BOW.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-08 BOW.md" similarity index 100% rename from "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/1108BOW.md" rename to "49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-08 BOW.md" diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-15\346\226\207\346\234\254\346\230\276\347\244\272\346\266\210\345\244\261.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-15\346\226\207\346\234\254\346\230\276\347\244\272\346\266\210\345\244\261.md" new file mode 100644 index 0000000..f379703 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-15\346\226\207\346\234\254\346\230\276\347\244\272\346\266\210\345\244\261.md" @@ -0,0 +1,85 @@ +# 文本显示消失 + +方法一: + +```js + + + + + + + + Document + + + + + +

我是h2

+ + + + +``` + +方法二: + +```js + + + + + + + Document + + +
+ +

我是h2

+ + + +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-16\344\272\213\344\273\266\347\273\203\344\271\240.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-16\344\272\213\344\273\266\347\273\203\344\271\240.md" new file mode 100644 index 0000000..dcfb651 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-16\344\272\213\344\273\266\347\273\203\344\271\240.md" @@ -0,0 +1,251 @@ +# 事件练习 + +```html + + + + + + 注册表单验证 + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
用户注册
用户名: + +
密码: + +
密码确认: + +
性别: + 男 + 女 + +
专业: + + +
爱好: + 抽烟 + 喝酒 + 打游戏 + 烫头发 + 足球 + 篮球 + +
自我介绍: + +
  + + +
+ +
+ + + +``` + +文件二: + +注册成功.html + +```html + + + + + + + Document + + +

恭喜你注册成功

+ + +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-17\344\272\213\344\273\266\345\257\271\350\261\241.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-17\344\272\213\344\273\266\345\257\271\350\261\241.md" new file mode 100644 index 0000000..bcafb01 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-17\344\272\213\344\273\266\345\257\271\350\261\241.md" @@ -0,0 +1,128 @@ +# 事件对象 + +```html + + + + + + + Document + + + + + + +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-22\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-22\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" new file mode 100644 index 0000000..e467f6f --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-22\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" @@ -0,0 +1,77 @@ +# 属性与元素 + +## 1将选中的文字变色 + +```js + + + + + + + + Document + + + + + +  
+ + 11月21日0-24时,31个省(自治区、直辖市)和新疆生产建设兵团报告新增确诊病例2225例。 + 其中境外输入病例80例(广东35例,福建12例,重庆6例,云南6例,上海5例,浙江4例,四川3例,陕西3例,天津2例, + 湖南2例,内蒙古1例,江苏1例),含7例由无症状感染者转为确诊病例(浙江4例,福建1例, + 四川1例,陕西1例);本土病例2145例(广东781例,北京274例,四川240例,重庆178例, + 云南147例,山西89例,内蒙古77例,河南75例,江苏51例,浙江37例,黑龙江28例, + 陕西23例,辽宁22例,山东22例,新疆19例,甘肃14例,贵州13例,湖南11例,福建10例, + 湖北9例,河北5例,海南5例,上海4例,广西3例,青海3例,安徽2例,西藏2例,天津1例), + 含592例由无症状感染者转为确诊病例(广东434例,重庆38例,四川24例,浙江20例,甘肃14例, + 北京12例,内蒙古7例,湖南7例,江苏6例,陕西6例,山西4例,辽宁4例,黑龙江4例,福建3例, + 河南3例,广西2例,青海2例,安徽1例,云南1例)。新增死亡病例2例,均为本土病例 + (河南1例,四川1例);无新增疑似病例。 + + + + + + + +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-23\344\272\213\344\273\266.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-23\344\272\213\344\273\266.md" new file mode 100644 index 0000000..3b34dce --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-23\344\272\213\344\273\266.md" @@ -0,0 +1,192 @@ +# 事件 + +## 二级菜单 + +```html + + + + + 二级下拉菜单 + + + + + + + + +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-27\345\205\250\351\200\211\344\270\216\345\217\215\351\200\211.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-27\345\205\250\351\200\211\344\270\216\345\217\215\351\200\211.md" new file mode 100644 index 0000000..616fe74 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/2022-11-27\345\205\250\351\200\211\344\270\216\345\217\215\351\200\211.md" @@ -0,0 +1,63 @@ +# 方法 + +## 实现全选与反选 + +```html + + + + + + + + + + + + +
+

+ + + +
+ + + + +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/22-11-21\351\200\211\346\213\251\345\231\250.md" "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/22-11-21\351\200\211\346\213\251\345\231\250.md" new file mode 100644 index 0000000..880ab56 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\344\275\234\344\270\232/22-11-21\351\200\211\346\213\251\345\231\250.md" @@ -0,0 +1,137 @@ +# 设置表单 + +## 1设置表格序号为偶数的行的背景颜色 + +```js + + + + + + + + Document + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
第一行第一行
第二行第二行
第三行第三行
第四行第四行
第五行第五行
+ + + + +``` + +## 2打印checkbox选中的个数 + +```js + + + + + + + + Document + + + + + + + + + + + + + +``` + +##3打印checkbox的value + +```js + + + + + + + Document + + +

喜欢的水果: + + +

+ + + + + +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-02this.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-02this.md" deleted file mode 100644 index 097cf57..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-02this.md" +++ /dev/null @@ -1,244 +0,0 @@ -# this - -**要点** - -- **优先级new 显示 >隐式>默认** -- 在方法中,this 表示该方法所属的对象。 -- 如果单独使用,this 表示全局对象。即window -- 在函数中,this 表示全局对象。 -- 在函数中,在严格模式下,this 是未定义的(undefined)。 -- 在事件中,this 表示接收事件的元素。 -- 类似 call() 和 apply() 方法可以将 this 引用到任何对象。 -- 函数执行时生成this - -## 默认绑定 - -### 直接调用 - -在函数被直接调用时,this 将指向全局对象。在浏览器环境中全局对象是 Window - -**1,在全局作用域中:this永远指向window** - -``` -console.log(this); -console.log(window === this);//true -``` - -**2,在函数作用域中:** - -如果函数直接被调用 this指向window 函数名() - -被对象的对象.属性()调用 函数中的this指向这个对象 - -(1)严格模式下 - -```js -function fun(){ - 'use strict' - console.log(this) -} -fun();//this指向undefined -``` - -(2)非严格模式下 - -```js -function fun(){ - console.log(this) -} -fun();//this指向window -``` - -###独立调用 - -this指向的都是window对象,比如:立即执行函数,闭包 - -1.立即执行 - -```js -//立即执行函数 - (function () { - console.log(this);//window - }()); -``` - -2.闭包:每个函数在执行时候都会生成一个**独一无二的this**, 且它们的指向可能是相同的 - -```js -//闭包 -function fn(){ - console.log(this); //window -function fun1(){ - console.log(this); //window - } - fun1(); -function fun2(){ - console.log(this); //window - } - fun2(); - } -fn() -``` - -## 隐式绑定 - -**定义:规则:谁调用,指向谁。比如,对象调用对象的方法** - -```js - var a = 0; - var obj = { - a: 2, - fn: function () { - console.log(this); //obj本身 - function fn1() { - console.log(this); //window - } - fn1(); //独立调用 - } - } - //执行obj.fn(),形成this - obj.fn(); -``` - -### 隐式丢失 - -定义:就是指隐式绑定的函数丢失绑定对象,从而默认绑定到全局或者undefined(取决于是否使用严格模式) - -1.为函数调用创建别名 - -```js -function foo(){ - console.log(this.a); -} -var obj={ - a:2, - foo:foo -} -var bar=obj.foo; -var a="window"; -bar()//window - -//虽然bar是obj.foo的一个引用,但是bar引用的是foo函数的本身,此时的bar()其实就是一个不带任何修饰的函数调用,所以应用了默认绑定,this为全局 -``` - -2.传入回调函数 - -```js -function foo(){ - console.log(this.a); -} -function doFoo(fn){ - fn(); -} -var obj={ - a:2, - foo:foo -} -var a="window"; -doFoo(obj.foo)//window - -//参数传递其实就是隐式赋值。相当于var fn=obj.foo,与创建别名的结果一样,应用了默认绑定,应该注意的是,return返回一个函数时,也是应用了默认绑定 -``` - -## 显示绑定 - -用法:利用`call ` `apply` `bind`方法:改变`this`的指向 - -###1,bind— 原型中的方法Function.prototype.bind() - -```js -function fn(a){ - this.a = a - console.log(this.a); - } -var obj={ - a:'obj' - } -fn.call(obj,5); -fn.apply(obj,[5]) -var fn1 = fn.bind(obj)(5); -fn1; -``` - -(1),多次bind时只认第一次bind的值 - -```js -function fun(){ - console.log(this) -} -fun.bind(1).bind(2)();//1 -``` - -(2),bind函数中this不会被修改 - -```js -function fun(){ - console.log(this) -} -fun.bind(1); -fun -``` - -###2,父函数是有能力决定子函数的this 指向 - -```js -const arr = [1,2,3]; -arr.forEach( - function (e){ - console.log(this); //window window window - } -) - -``` - -## new 绑定 - -- **当使用 new 关键字调用函数时,函数中的 this 一定是 JS 创建的新对象** - -```js -function GetName(){ - //严格模式,即指定当前为构造函数 - 'use strict' - this.a = 'ABC'; - console.log(this); //指代当前对象GetName - } -GetName(); //独立调用 -var name = new GetName(); -var name1 = new GetName(); -``` - -## 箭头函数中的this - -**要点** - -- **箭头函数this的指向不会发生改变,也就是说在创建箭头函数时就已经确定了它的this的指向了;它的指向永远指向箭头函数外层的 this** -- **箭头函数中this指向不会被call,apply修改** -- **使用箭头函数后,其他的绑定方式无用** - -```js - var a = 'window' - var obj = { - a:'obj', - fn: () => this.a - } - console.log(obj.fn()); - -``` - -# 对象里两种函数书写形式 - -```js - - var obj ={ - //1 - // fn(){ - // console.log('11'); - // } - - //2 - fn: function () { - console.log(this);; - } - } -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-06js\345\237\272\347\241\200\350\257\255\346\263\225.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-06js\345\237\272\347\241\200\350\257\255\346\263\225.md" deleted file mode 100644 index 901b19a..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-06js\345\237\272\347\241\200\350\257\255\346\263\225.md" +++ /dev/null @@ -1,112 +0,0 @@ -# js基础语法 - -## 一.JavaScipt的概念和执行原理 - -(1)JavaScript也是程序语言中的一种,但是JavaScript是嵌入到HTML语言中,直接通过浏览器运行。 - -(2)JavaScript的执行原理:当客户端向服务器端请求某个页面时,服务器端将整个页面中包含JavaScript的脚本代码作为响应内容,发送回客户端机器,客户端浏览器根据发回的网页文件从上往下逐行读取并解析其中的html或者脚本代码。 - -## 二.编写位置 - -(1)直接写在页面标签script里面 - -~~~html -``` - - - - - 脚本代码的位置:直接写在页面标签里面 - - - - - - - -``` -~~~ - -(2)写在外部JS文件中,再传入html文件 - -~~~js -js文件 -js/Demo02.js -``` -alert("欢迎进入JavaScript编程的世界!"); -``` -~~~ - -~~~html -html文件 -``` - - - - - 脚本代码的位置:写在外部js文件中 - - - - - - - -``` -~~~ - -## 三、将JS脚本代码作为A标签的属性值 - -~~~html -``` - - - - - 将脚本代码作为a标签的属性值 - - - - 喜欢我就点击我吧 -

- 喜欢我就点击我吧 - - -``` -~~~ - -## 四.数据类型和变量 - -(1)JavaScript是**弱类型语言**,在定义变量的时候不用确定数据类型,在赋值的时候根据值自动确定其类型 。 - -(2)数据类型有:numbers , string , null , undefined , boolean, (symbol , bigint) - -``` -null 与 undefined的区分 -undefined: 声明未赋值 -null: 空指针引用 -``` - -(3) var是声明变量的关键字 。使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。 - -(4)给变量命名的时候,需要遵循如下规则: - - 【1】 第一个字符必须是一个字母、下划线(_)或一个美元符号$。 - - 【2】 后面的字符可以是字母、下划线、美元符号或数字。 - - 【3】 区分大小写。 - - 【4】 不能与关键字同名 ,如while、for和if等。 - -(5)typeof :显示变量的数据类型 - -(6)定义数组用const - - (7)let 声明的变量只在 let 命令所在的代码块 **{}** 内有效,在 **{}** 之外不能访问。 - -## 五.运算符 - -(1)===:等值等型 \ No newline at end of file diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-10\346\225\260\347\273\204.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-10\346\225\260\347\273\204.md" deleted file mode 100644 index b3ffa59..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-10\346\225\260\347\273\204.md" +++ /dev/null @@ -1,297 +0,0 @@ -# js数组 - -## 一.字符串转义 - -~~~javascript -```js -\n:换行 -\t:Tab键 -\\:斜杠 -\':单引号 -\":双引号 -``` -~~~ - -## 二.string常用方法 - - let js = 'JavaScript' - -### 1 length - -length:获取字符串的长度: - -###2 toUpperCase() - -toUpperCase() :将英文字母全转为大写: - -###2.1 toLowerCase() - -toLowerCase():将英文字母全转为小写 - -###3 substr() - -substr():截取字符串 - -substr (startIndex,counts) - -startIndex:起始索引位置 ; - -counts:截取字符串的个数。从下标start开始截取counts个字符 - -###3.1 substring() - -substring():截取字符串: - -substring((startIndex,endIndex) startIndex:起始索引位置 endIndex:截止索引位置(不包含) - -###4 split() - -split():拆分字符串 - -###5 trim() - -trim():去除开头或者结尾的空格: - -###6 includes() - -includes() :查看是否字符串中是否包含,如果数组存在指定元素就会返回true,没有就返回false。 - -###7 indexof() - -indexof:可返回某个指定的字符串值在字符串中首次出现的位置: - -indexof(searchvalue,fromindex); - -| searchvalue | 必需。规定需检索的字符串值 | -| ----------- | ------------------------------------------------------------ | -| fromindex | 可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 stringObject.length - 1。如省略该参数,则将从字符串的首字符开始检索。 | - -如果返回-1,则表示不存在 - -###8slice(): - -`slice()` 方法以新的数组对象,返回数组中被选中的元素。 - -`slice()` 方法选择从给定的 *start* 参数开始的元素,并在给定的 *end* 参数处结束,但不包括。 - -**注释:**`slice()` 方法不会改变原始数组。 - -​ 表示切片,参数个数:0 1 2 返回一个数组对象 - -```js -例子 - var arr=['aa','bb','cc','dd','ee','ff']; - var data=arr.slice(2,4); -//新数组data结果为: ["cc", "dd"] - -``` - - - -### 9 splice() - -splice():用于添加或删除数组中的元素。左右都闭合,都能取到 - -``` -语法: -array.splice(index,howmany,item1,.....,itemX) -``` - -```js -例子 -const arr = [87,85,74,70,65,59,43] - arr.splice(4,0,68); //在下标5添加一个68 - arr.splice(5,1); //在下标5删除一个元素 -``` - - - -| 参数 | 描述 | -| :-------------------- | :----------------------------------------------------------- | -| *index* | 必需。规定**从何处**添加/删除元素。 该参数是开始插入和(或)删除的数组元素的下标,必须是数字。 | -| *howmany* | 可选。规定应该**删除多少元素**。必须是数字,但**可以是 "0"**。 如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。 | -| *item1*, ..., *itemX* | 可选。要添加到数组的新元素 | - -###10 push,pop,unshift与shift - -对数组首尾添加或删除元素 - -| 方法 | 作用 | -| ------- | -------- | -| push | 末尾添加 | -| pop | 末尾删除 | -| unshift | 开头添加 | -| shift | 开头删除 | - -### 11 *forEach() - -forEach():为数组中每个元素调用对应函数, 又称回调函数;遍历数组 - -```js -语法 -array.forEach(callbackFn(currentValue, index, arr), thisValue) -``` - -| 参数 | 描述 | -| :------------------------------------- | :----------------------------------------------------------- | -| *callbackFn(currentValue, index, arr)* | 必需。 数组中每个元素需要调用的函数。 函数参数:参数描述*currentValue*必需。当前元素*index*可选。当前元素的索引值。*arr*可选。当前元素所属的数组对象。 | -| *currentValue**thisValue* | 必需。当前元素可选。传递给函数的值一般用 "this" 值。 如果这个参数为空, "undefined" 会传递给 "this" 值 | - -| 参数 | 描述 | -| :------------- | :----------------------------- | -| *currentValue* | 必需。当前元素 | -| *index* | 可选。当前元素的索引值。 | -| *arr* | 可选。当前元素所属的数组对象。 | - -1.forEach()方法用于调用数组的每个元素,并将元素传递给回调函数。 - -2.forEach()有三个参数,第一个是function()函数,第二个是对象; - - 3.函数里面有三个参数,第一个是数组的每一项值(必选),第二个是数组下标(可选),第三个是原数组(可选) - -4.forEach()第二个参数对象,使第一个参数函数的this指向对象 - -如: - -```javascript -1.第一个是数组的每一项值(必选) - var obj = { - '1' : 'abc', - '3' : 100, - '5' : 'hello' - } - var arr = [1, 3, 5]; - arr.forEach(function(item){ },obj);//返回值: 1 3 5 - -2.第二个是数组下标(可选) - var obj = { - '1' : 'abc', - '3' : 100, - '5' : 'hello' - } - var arr = [1, 3, 5]; - arr.forEach(function(item, index, self){ - console.log(index); - },obj);//返回值:0 1 2 - -3.第三个是原数组(可选) - var obj = { - '1' : 'abc', - '3' : 100, - '5' : 'hello' - } - var arr = [1, 3, 5]; - arr.forEach(function(item, index, self){ - console.log(self); - },obj);//返回值:[1,3,5] [1,3,5] [1,3,5] - - -4.forEach()第二个参数对象 - var obj = { - '1' : 'abc', - '3' : 100, - '5' : 'hello' - } - var arr = [1, 3, 5]; - arr.forEach(function(item, index, self){ - console.log(this); - },obj);//让回调函数中的this指向 arr - //返回值{'1' : 'abc','3' : 100, '5' : 'hello'} {'1' : 'abc','3' : 100, '5' : 'hello'} {'1' : 'abc','3' : 100, '5' : 'hello'} -``` - -### 12 map() - -map():为数组中每个元素调用对应函数,返回一个新的数组 - -例子:为数组每个元素加2 - -```javascript -const arr2 = [1,2,3,4,5,6]; -const arr3 = arr2.map( - function(item){ - return item+2 - } -) -console.log(arr3); -``` - -###13 filter() - -filter(过滤):筛选符合条件的元素,返回一个新数组 - -例子:筛选为偶数的元素 - -```js -const arr3 = arr2.filter( - function (item) { - if(item%2==0){ - return item - } - } -) - -console.log(arr3); -``` - -### 14 reduce() - -reduce():归纳汇总 - -例子 - -```js -arr1=[1,2,3,4] -const varr = arr1.reduce( - function (v1,v2){ - return v1*v2 - } -) -console.log(varr); -//执行为1*2*3*4,即打印结果为24 -``` - -### 15 join() - -join():添加指定字符后转成字符串 - -###16 concat() - -concat():将两个数组合并在一起 - -```js -例子: -const a = [1, 2, 3] -const b = [4, 5, 6] -const c = a.concat(b) -//输出为[1,2,3,4,5,6] - -``` - -### 17 toString() - -toString():将数组转成字符串 - -### 18 every() - -every:检查所有数组值是否通过测试,通过则返回ture,否则返回false - -## 数组解构(es6) - -1.取数组中的某几个元素 - -```js -const arr = [1,2,'Java','Python'] - var [a,b,...c] = arr//a为‘1’,b为‘2’,'...'为中间部分,c为‘Python’ - console.log(a,c);//输出为[1,Python] -``` - -2.元素交换 - -```js -const arr = [1,2,3,4,5,6] -//交换前输出[1,2,3,4,5,6] -//交换 -[arr1[2],arr1[0]] = [arr1[0],arr1[2]] -//交换后输出[3,2,1,4,5,6] -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-11\345\207\275\346\225\260.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-11\345\207\275\346\225\260.md" deleted file mode 100644 index be8142c..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-11\345\207\275\346\225\260.md" +++ /dev/null @@ -1,199 +0,0 @@ -函数 - -## 一.函数声明 - -```js -//声明 -function function_name() -{ - -} -//调用 -function_name(); -``` - -##二.函数类型 - -### 1. 无参无返回值 - -```js -function AA() { - let a = 2; - console.log(AA) -} -``` - -###2.无参有返回 - -```js -function BB() { - let a = 2; - let b = 3; - return a*b; - console.log(BB) -} -``` - -### 3.带参有返回 - -```js -function CC(a,b) { - let a = 2; - let b = 3; - return a*b; - console.log(CC) -} -``` - -### 4带参返回多个值 - -```js -function DD(A, B) { - return `${A} ${B}` -} -console.log(DD('AAAA','BBBBB')) -``` - -### 5.带不确定个参数 - -```JS -function GetSum() { -// console.log(arguments); -let sum = 0 -for(var i = 0 ; i (方法体) -``` - -####注意: - -**1.如果箭头函数不需要参数或者需要多个参数,就可以使用一个圆括号的代替参数部分** - -```js -const a = () => {console.log('这是一个匿名函数');} - -``` - -**2.如果只有一个参数,那么可以省略小括号** - -```js -const b = j => {console.log(j);} - -``` - -**3.如果函数体中只有一句代码,那么可以省略大括号** - -```js -const c = (n1,n2) => console.log(n1+n2) -``` - -**4.函数中只有一个return语句时,可以省略return** - -```js -const d = (n1,n2) => n1+n2 -``` - -**5.如果箭头函数返回一个对象,那么需要在对象外面加上圆括** - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-12\345\257\271\350\261\241.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-12\345\257\271\350\261\241.md" deleted file mode 100644 index b1c852f..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-12\345\257\271\350\261\241.md" +++ /dev/null @@ -1,102 +0,0 @@ -# 对象 - -## 全局变量与局部变量 - -```js -var str1 = "hello1"; //定义一个全局变量 - function a() { - var str2 = "hello2"; //定义一个局部变量 - str3 = "hello3"; //定义一个全局变量 - } - a() //结果:我是局部变量 - - console.log(str1); //结果:全局变量 - console.log(str3); //结果:我也是全局变量 - //console.log(str2); //局部变量,在函数外使用会报错 -``` - -## 创建对象 - -```js -var person = { - name :'克里斯提娜', - age :18, - isGraduated : true, - bf:'凤凰院凶真', - ex:'', - 'qq number' - //对象中包含属性,为数组与字符串 - breakingup : function(){ - this.ex = this.bf, - this.bf = '' - }, - //传入男朋友 - makenewboy:function(name){ - //先判断目前有没有男朋友 - if(this.bf.length === 0){ - this.bf = name - } - } -} -``` - -## 增删改查 - -###1.查 -通过[] 或 . 如: - -```js -console.log(person.age); -console.log(person['qq number']); - -``` - -### 2.增 - -```js -直接增加 -对象名.增加属性名=值 -如 -person.address='日本' -``` - -### 3删 - -``` - delete zj['qq number'] -``` - -### 4改 - -``` -person.name='助手' -或 -person[name]='助手' -``` - -## 对象长度 - -``` -var s1={} -s1.length -//输出为15,则空对象的长度为15 -``` - -## 构造函数 - -```js -构造函数 - function Person(name,age){ - //this: 指代当前的对象 - //var this = {} - this.name = name, - this.age = age - //return 123 //返回的值是基本数据类型 会自动忽略 - //return {} //如果返回的是对象,那么覆盖返回的this - //return this - } - var zj1 = new Person('张三',26) - var zp = new Person('李四',26) - zp.gender = '女' -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-13\345\257\271\350\261\241\350\247\243\346\236\204\344\270\216\345\214\205\350\243\205\347\261\273.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-13\345\257\271\350\261\241\350\247\243\346\236\204\344\270\216\345\214\205\350\243\205\347\261\273.md" deleted file mode 100644 index 87fa1b6..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-13\345\257\271\350\261\241\350\247\243\346\236\204\344\270\216\345\214\205\350\243\205\347\261\273.md" +++ /dev/null @@ -1,131 +0,0 @@ -# 对象解构 - -## 1解构 - -###取值语法格式 - -```js -var obj = { - a:5, - b:6, - c:7 -}; - -const {x:a,y:b,z:c} = obj; -``` - -###另外取名 - -格式例子 - -```js -var student = { - name: '悟空', - age: 500, - skill: { - Java: 2021, - C: 2022 - } - } - - //1.如果需要另起名字 - let { name: personName, age: personAge } = student - //2.直接使用 - let { name, age } = student - console.log(name, age); -``` - -### 嵌套解构 - -```js - let { skill: { Java: getYear } } = student - console.log(getYear); -``` - - - -## 2 - -```js - function Student(name, age) { - //this = {} - this.name = name, - this.age = age - //return this - } - - - } - var person = new Student('路飞', 18) - var person2 = new Student('索隆', 18) - - console.log('姓名:' + person.name + '年龄:' + person.age) - console.log('姓名:' + person2.name + '年龄:' + person2.age) -``` - - - -## 3 - -```JS - - var a = new Number(5) - //可以当做数字使用 - a.len = 2 - console.log('a为'+a.len); -``` - -如果定义的不是对象则会将定义的数值删除 - -```js - var num = 5 //number, null, undefined, string, boolean - - - num.len = 2 //new Number(5).len = 2 ---> delete num.len - - - console.log(num.len); //new Number(5).len =undefined - -``` - -## 4对于基本数据类型 - -```js - var str = 'string' //基本数据数据类型 - // str.ob ='akdkf' - str.length = 3 //new String('string').length = 3 --> delete - -``` - -## 5对于数组 - -```js - const arr = [1, 2, 3, 4, 5, 6, 7] //数组 函数 对象 ---》 对象 - arr.length = 4 - console.log('arr: ' + arr); -//则获取的是前4个元素[1,2,3,4],不改变原来数组的长度 -``` - - - -# 包装类 - -## 1 没有包装类的数据类型 - -null, undefined - -没有包装类的数据类型不能被解构 - -## 2 存在包装类的数据类型 - -number() 可以基本数据类型数字转换为对象 - -boolean ()可以基本数据类型布尔值转换为Boolean对象 - -string() 可以基本数据类型字符串转换为String对象 - -# 深拷贝与浅拷贝 - - 深拷贝:将整个对象复制过来 - - 浅拷贝:拷贝过来的是地址(指针) diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-17\345\257\271\350\261\241\346\226\271\346\263\225.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-17\345\257\271\350\261\241\346\226\271\346\263\225.md" deleted file mode 100644 index bb003bb..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-17\345\257\271\350\261\241\346\226\271\346\263\225.md" +++ /dev/null @@ -1,407 +0,0 @@ -# Object. assign () - -## 定义 - -Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。 - -作用总结:合并多个对象,覆盖,浅拷贝 - -语法: - -Object.assign(target,...sources) - -参数: - -target:新对象,用来接受的对象 - -sources:源对象。 - -返回值: - -目标对象,新对象。 - -##合并 - -```js -let json1 = {a:1} -let json2 = {b:2} -let json3 = {c:3} - -let json =Object.assign ({},json1,json2,json3); -console.log(json); - -// {a: 1, b: 2, c: 3} -``` - -## 覆盖 - -```js -let json1 = {a:1} -let json2 = {b:2,a:2,c:3} -let json3 = {c:4} -//逐序覆盖 -let json =Object.assign ({},json1,json2,json3); -console.log(json); - -// {a: 2, b: 2, c: 4} -``` - -## 浅拷贝与深拷贝 - -浅拷贝 - -```js -let json = { - a:"a", - b:"b", - c:"c" -} -let json2 = Object.assign(json) -json2.b = "d"; -console.log(json2); //{a: "a", b: "d", c: "c"} - -console.log(json); //{a: "a", b: "d", c: "c"} -``` - -深拷贝 - -```js -let json = { - a:"a", - b:"b", - c:"c" -} -let json2 = Object.assign({},json) -json2.b = "d"; -console.log(json2); //{a: "a", b: "d", c: "c"} - -console.log(json); //{a: "a", b: "b", c: "c"} -``` - -两者区别在于有没有接受新对象 - -即浅拷贝为 - -```js -let json2 = Object.assign(json) -``` - -深拷贝为 - -```js -let json2 = Object.assign({},json) -``` - -# Object. entries() - -## 定义 - -**Object. entries()** 方法返回一个给定对象自身可枚举属性的**键值对数组**,其**排列**与使用 for…in 循环[遍历](https://so.csdn.net/so/search?q=遍历&spm=1001.2101.3001.7020)该对象时返回的顺序一致(区别在于 for-in 循环也枚举**原型链中的属性**)。 - -## 示例 - -```js - var obj = { - name: '悟空', - age: 500 - } - console.log('--------------'); - //返回键 - for (let i of Object.keys(obj)) { - console.log(i); - } - //返回值 - console.log('--------------'); - for (let i of Object.values(obj)) { - console.log(i); - } - //entries返回键值对 - console.log('--------------'); - for(let [k,v] of Object.entries(obj)) { - console.log('key:'+k +' '+'value:'+v); - } - console.log('--------------'); -//输出结果 --------------- -name -age --------------- -悟空 -500 --------------- -key:name value:悟空 -key:age value:500 --------------- -``` - -#进制转换 - -## parseInt() - -将指定的进制转换为十进制 - -```js -var a=100101101011 -var a2=parseInt(a,2);//将二进制转换为十进制,用parseint -``` - -##tostring() - -将十进制转换为指定进制 - -```js -var a=100101101011 -var a2=parseInt(a,2); -a2.toString(16); -``` - -# Set - -## 定义 - -`Set`对象是值的集合,你可以按照插入的顺序迭代它的元素。Set 中的元素只会**出现一次**,即 Set 中的元素是唯一的。 - -**注意:Set的首字母大写** - -## 创建 - -```js -const set = new Set(); -``` - -## 打印 - -```js -console.log(...set); -``` - - - -## 示例 - -示例1 - -```js -// 创建新的变量 -const a = "a"; -const b = "b"; -const c = "b"; - -// 创建 Set -const letters = new Set(); - -// Add the values to the Set -letters.add(a); -letters.add(b); -letters.add(c); -//输出为[a,b] -``` - -示例2 - -``` -var set = new Set() -set.add(1); -set.add(1); -set.add("1"); -set.add(NaN); -set.add(NaN); -set.add(+0); -set.add(-0); -console.log(...set); -//打印结果为 -1 1 nan 0 -``` - -遍历 - -```js -console.log('--------keys----------'); -for (let i of set.keys()) { - console.log(i); -} -console.log('---------values---------'); -for (let i of set.values()) { - console.log(i); -} -//entries:没有值,所以出来的键值对都是值 -console.log('--------entries----------'); -for (let i of set.entries()) { - console.log(i); -} -console.log('--------set----------'); -for (let i of set) { - console.log(i); -} -//输出结果 ---------keys---------- -1 -1 -NaN -0 ----------values--------- -1 -1 -NaN -0 ---------entries---------- -(2) [1, 1] -(2) ['1', '1'] -(2) [NaN, NaN] -(2) [0, 0] ---------set---------- -1 -1 -NaN -0 -``` - - - -## 方法和属性 - -| new Set() | 创建新的 Set 对象。 | -| --------- | ------------------------- | -| add() | 向 Set 添加新元素。 | -| clear() | 从 Set 中删除所有元素。 | -| delete() | 删除由其值指定的元素。 | -| entries() | 返回 Set 对象中值的数组。 | -| has() | 如果值存在则返回 true。 | -| forEach() | 为每个元素调用回调。 | -| keys() | 返回 Set 对象中值的数组。 | -| values() | 与 keys() 相同。 | -| size | 返回元素计数 | - -###创建 - -```js -var set=new Set() -``` - -###增加add - -```js -var obj = set.add(3) //返回的是集合本身 -console.log(obj); -``` - -###删 delete - -```js -var isDelete = set.delete(4); //返回的是布尔值,成功true 失败false - console.log(isDelete); -``` - -###查 has - -```js -var isFound = set.has(1); //返回的是布尔值,成功true 失败false - console.log(isFound); -``` - - - -#NAN属性 - -NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,**来指示其不是数字值**。 - -```js -var set = new Set() - //类似数组,装的不重复的元素 [1,1,2,2] - console.log(Set.prototype); - //增加,不重复 - set.add(1); - set.add(1); - set.add("1"); - set.add(NaN); - set.add(NaN); - set.add(+0); - set.add(-0); - //非数:不是数字 number - // console.log(typeof NaN); - console.log(NaN === NaN); //false - console.log(Object.is(NaN, NaN)); //ES6的Obejct.is()方法认为NaN===NaN true - console.log(+0 === -0); //true - console.log(Object.is(+0, -0)); //false -``` - -# Map - -## 定义 - -Map 对象存有键值对,其中的键可以是任何数据类型。 - -Map 对象记得键的原始插入顺序。 - -Map 对象具有表示映射大小的属性。 - -## 创建 - -```js -const map = new Map(); -``` - -## 方法和属性 - -| 方法 | 作用 | -| :-------- | :----------------------------- | -| new Map() | 创建新的 Map 对象。 | -| set() | 为 Map 对象中的键设置值。 | -| get() | 获取 Map 对象中键的值。 | -| entries() | 返回 Map 对象中键/值对的数组。 | -| keys() | 返回 Map 对象中键的数组。 | -| values() | 返回 Map 对象中值的数组。 | - -| 属性 | 作用 | -| ---- | ------------------------- | -| size | 获取 Map 对象中某键的值。 | - -###打印与覆盖性 - -```js - var map = new Map(); - map.set(name,'悟空') - console.log(map.set(name,'八戒')); //如果已有该键,继续添加会覆盖原有属性 - map.set(age,16) //返回的是map本身 -``` - -## 示例 - -```js -var name = 'a'; -var age = {}; -var map = new Map(); -map.set(name,'周飘') - -console.log('--------keys----------'); -for (let i of map.keys()) { - console.log(i); -} -console.log('---------values---------'); -for (let i of map.values()) { - console.log(i); -} -//entries:没有值,所以出来的键值对都是值,返回一个数组 -console.log('--------entries----------'); -for (let i of map.entries()) { - console.log(i); -} -console.log('------------------'); -for (let i of map) { - console.log(i); -} -``` - -打印结果 - -```js ---------keys---------- -a ----------values--------- -周飘 ---------entries---------- -(2) ['a', '周飘'] ------------------- -(2) ['a', '周飘'] -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-19\351\242\204\347\274\226\350\257\221.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-19\351\242\204\347\274\226\350\257\221.md" deleted file mode 100644 index ce22ed1..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-19\351\242\204\347\274\226\350\257\221.md" +++ /dev/null @@ -1,84 +0,0 @@ -# 预编译 - -## AO - -//语法分析:通篇扫描,检查有没有语法错误 - -​ //预编译: - -​ // 1. 创建AO(Activation Object执行期上下文)对象,执行函数之前 - -​ // 2. 找形参和变量声明,将变量和形参作为AO属性名,值为undefined, - -​ // 3. 将实参值和形参统一 - -​ // 4. 在函数体里面找到函数声明,值赋予函数体 - -```js -例题 - - AO{ - a:undefined --> 1 --> f a() {} --> 123 - b:undefined - d:f d() {} - } - function fn(a) { - console.log(a); //f a() {} - var a = 123 - function a() { } - console.log(a); //123 - var b = function () { } //变量 - console.log(b); //f (){} - function d() { } - } - fn(1) - -``` - -# arguments - -定义:类数组,只有长度和索引,其他数组方法都没有 - -ase6 后,多用...args 代替 - -#arguments.callee - -作用:解耦 - -```js -function factorial(num){ - if (num <=1) { - return 1; - } else { - return num * factorial(num-1) - } -} -``` - -定义阶乘函数一般都要用到递归算法;如上面的代码所示,在函数有名字,而且名字以后也不会变的情况下,这样定义没有问题。 -  但问题是这个函数的执行与函数名 factorial 紧紧耦合在了一起。为了**消除**这种**紧密耦合**的现象,**可以**像下面这样**使用 arguments.callee** - -```js -function factorial(num){ - if (num <=1) { - return 1; - } else { - return num * arguments.callee(num-1); - } -} -``` - - - -# apply - -语法:apply([thisObj,[argArray]]) - -定义:应用某一对象的一个方法,用另一个对象替换当前对象。 - -说明: - -如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。 - -如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj, 并且无法被传递任何参数。 - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-20\351\242\204\347\274\226\350\257\221\344\270\216\344\270\245\346\240\274\346\250\241\345\274\217.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-20\351\242\204\347\274\226\350\257\221\344\270\216\344\270\245\346\240\274\346\250\241\345\274\217.md" deleted file mode 100644 index 55c9966..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-20\351\242\204\347\274\226\350\257\221\344\270\216\344\270\245\346\240\274\346\250\241\345\274\217.md" +++ /dev/null @@ -1,24 +0,0 @@ -# 严格模式:sloppy mode - -语法:"use strict"; - -作用 - -```js - //如果没用严格模式,null,undefined会自动指向全局对象Window - //使用严格模式,null,undefined不会自动转换 - //不允许在函数内部意外的定义全局变量,防止内存泄漏 - //取消this的强制转换 -``` - -# 预编译GO - -三要素 - -``` -// 1. 创建go(Activation Object执行期上下文)对象,执行函数之前 -// 2. 找形参和变量声明,将变量和形参作为GO属性名,值为undefined, -// 3. 在函数体里面找到函数声明,值赋予函数体 - -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-24\344\275\234\347\224\250\345\237\237.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-24\344\275\234\347\224\250\345\237\237.md" deleted file mode 100644 index ae956f2..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-24\344\275\234\347\224\250\345\237\237.md" +++ /dev/null @@ -1,53 +0,0 @@ -# 作用域 - -## 局部作用域 - -只在某个区域内有效,例如**循环** - -## 全局作用域 - -在全局中都有效,且在局部作用域中找不到声明的对象,但全局作用域中可以找到便指向于全局作用域 - -**注意循环也是全局变量** - -```js -var a=10 -function text(){ - console.log(a); -} -text() -//输出结果为10 -``` - -# 作用域链 - -定义时:outer:作用域链 , 0 --》go{} - -执行期上下文:当函数执行前,会创建一个称为执行期上下文的内部对象(AO)。一个执行期上下文定义了一个函数执行时的环境,函数每次执行时对应的执行上下文都是独一无二的,所以多次调用一个函数会导致创建多个执行上下文,当函数执行元毕,它所产生的执行上下文被销毁。 - -作用域是分层的,内层作用域可以访问外层作用域的变量,反之则不行。 - -示例 - -```js -//1.函数被定义时:outer: 作用域链, 0 --> GO{outer:f() {}, a: 100} - function outer() { - //outer函数执行时: 作用域链, 0 --> AO{a:undefined, inner(): f(){},b:12} - // 1 --> GO{outer:f() {}, a: 100} - console.log(a); - //inner被定义时 作用域链: 0 --> AO{a:undefined, inner(): f(){}} - // 1 --> GO{outer:f() {}, a: 100} - function inner() { - // 0--> AO{a:undefined} - // outer 1 --> AO{ a: undefined, inner(): f(){ }, b:12 } - // 2 --> GO{outer:f() {}, a: 100} - console.log(b); - var a = 23; - } - var a = 12; - inner(); - } - var a = 100; -``` - -- diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-25\351\227\255\345\214\205.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-25\351\227\255\345\214\205.md" deleted file mode 100644 index 4ddcfd4..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-25\351\227\255\345\214\205.md" +++ /dev/null @@ -1,53 +0,0 @@ -# 闭包 - -定义:闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。 - -作用:执行上下文销毁时由内到外 - -当内部变量对象没有销毁时,外部的也不会销毁 - -示例 - -```javascript - var nAdd; - function out(){ - var n = 999; - nAdd = function(){ - n ++; - console.log(n) - } - return function(){ - console.log(n); - } - } - var getN = out(); - getN(); //999 - nAdd(); //1000 - getN(); //1000 -``` - - - -# 立即执行函数 - -定义:即函数定义后立马执行后立马销毁 - -示例 - -```js -//非立即执行 -function b() { - console.log(c); -} - - -``` - -```js -//立即执行 -(function b(c){ - console.log(c); -}(2)) - -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-26\345\216\237\345\236\213.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-26\345\216\237\345\236\213.md" deleted file mode 100644 index 7102695..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-26\345\216\237\345\236\213.md" +++ /dev/null @@ -1,58 +0,0 @@ -# 原型 - -定义:js原型也叫做js原型对象是一种对象属性,在Javascript中,每一个函数,系统都会给这个函数一个属性,这个属性就是prototype。 - -即:原型是这个类下所有对象的公共祖先,继承: - -**原型的定义要在对象实例化之前定义,对象实例化之后定义,不影响实例化对象的原型** - -## 原型的新增 - -```js -//创立一个构造函数 - function Test(obj) { - this.name = obj.name, - this.age = obj.age, - } -``` - -```js -//为对象Text 新增一个原型属性 -Test.prototype.class = '3班' -Test.prototype.sayHi = function(){ - console.log('Hi,My name is' + this.name); -} -``` - -已经创建的对象能够正确访问修改后的原型 - -## 原型的修改 - -```js -//创立一个构造函数 - function Test(obj) { - this.name = obj.name, - this.age = obj.age, - } -``` - -```js -//为对象Text 修改一个原型属性 -Test.prototype = { - class : '三班' - sayHi : function () { - console.log('Hi,My name is' + this.name); - } -} -``` - -已经创建的对象无法访问到修改后的原型 - -## 删除 - -**删除对象本身的属性,原型上的属性不删除** - -```js -delete zp1.gender -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-27\345\216\237\345\236\213\351\223\276.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-27\345\216\237\345\236\213\351\223\276.md" deleted file mode 100644 index c16328d..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-27\345\216\237\345\236\213\351\223\276.md" +++ /dev/null @@ -1,50 +0,0 @@ -# 原型链 - -## 定义 - -让原型对象等于另一个类型的实例,此时的原型对象将包含一个指向另一个原型的指针,相应地,另一个原型中也包含着一个指向另一个构造函数的指针 - -**原型链,引用其所有子级(自己没有)会父级的属性, 子级一般来说不能修改父级属性,(除非是引用)** - -**注意:绝大数对象最终都会继承自Object.prototype, 除非使用Object.create(null)** - -##prototype与_ _ proto_ _ 与cononstructor - -### 要点 - -1. `__proto__`和`constructor`属性是**对象**所独有的; - -2. `prototype`属性是**函数**所独有的。但是由于JS中函数也是一种对象,所以函数也拥有`__proto__`和`constructor`属性, - -### 1. prototype - -``` -它是函数所独有的,它是从一个函数指向一个对象。、 - -它的含义是函数的原型对象,也就是这个函数(其实所有函数都可以作为构造函数)所创建的实例的原型对象, - -``` - -**作用:** - -包含可以由特定类型的所有实例**共享的属性和方法**,也就是让该函数所实例化的对象们都可以找到公用的属性和方法。任何函数在创建的时候,其实会默认同时创建该函数的prototype对象。 - -###2 --proto-- 属性 - -``` -__proto__属性都是由一个对象指向一个对象,即指向它们的原型对象(也可以理解为父对象), -作用:就是当访问一个对象的属性时,如果该对象内部不存在这个属性,那么就会去它的__proto__属性所指向的那个对象(可以理解为父对象)里找,如果父对象也不存在这个属性,则继续往父对象的__proto__属性所指向的那个对象(可以理解为爷爷对象)里找,如果还没找到,则继续往上找…直到原型链顶端null(可以理解为原始人。。。),再往上找就相当于在null上取值 -``` - -它是每一个子对象(除null外)都会有的一个属性,指向该对象的原型 - -###3 cononstructor - -是**对象才拥有的**,它是从**一个对象指向一个函数**,含义就是**指向该对象的构造函数**,每个对象都有构造函数 - - - -## 增删改查 - -**子级没权限 增/改/删 父级的属性,除非父级的属性是引用值** - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-31\347\273\247\346\211\277.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-31\347\273\247\346\211\277.md" deleted file mode 100644 index 09a869b..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/10-31\347\273\247\346\211\277.md" +++ /dev/null @@ -1,146 +0,0 @@ -#继承 - -## 原型链继承 - -原型链是传统的继承模式,但存在着一定的弊端。 - -**弊端:过多的继承了没用的属性** - -例 - -```js -function T() {} -var t = new T(); -function Father(){ -} -Father.prototype.sex = '男'; -function Son(){ -} -//将父类的原型赋给子类 -Son.prototype = Father.prototype; -//构造函数实例化 -var father = new Father(); -var son = new Son(); -//将父类Father的属性赋给对象son -son.__proto__ = Object.create(new Father()); -``` - - - -## 构造函数继承 - -**弊端:** - -**1不能继承借用构造函数的原型** - -**2每次构造函数都要多走一个函数** - -**3子类只能继承父类的属性,不能继承父类的方法** - -例子 - -```js - function Person(name, age, sex) { - this.name = name; - this.age = age; - this.sex = sex; - } - //子类中形参的书写顺序,应先写父类中的形参,再写本身的参数,且应一一对应 - function Student(name, age, sex, grade) { - //1.使用call继承 - //Person.call(this, name, age, sex); - //2.使用apply继承 - Person.apply(this, [name, age, sex]); - this.grade = grade; - } - var student = new Student('张三',18,'男',2021); - console.log(student); -``` - -## 共享模式 - -定义:共享模式即子类和父类共享原型,子类原型改变,父类原型也随之改变。 - -**弊端:原型一改都改** - -例子 - -```js -//创建函数inherit(Target,Origin) - function inherit(Target,Origin){ - Target.prototype = Origin.prototype; - } -//创建两个构造函数 - function Father(){} - Father.prototype.sex = 'male'; - function Son(){} -//将子构造函数装入Target,将父对象装入Origin - inherit(Son,Father); -//实例化son - var son = new Son(); -//给Son新增原型 - Son.prototype.skill = 'js'; -//实例化Father - var father = new Father(); -//此时发现,两则的原型相同,输出ture - console.log(father.__proto__===son.__proto__); -``` - -## 圣杯模式 - -**圣杯模式的出现和思路与浅层克隆和深层克隆问题很相似** - -**圣杯模式子类可以继承父类的属性与方法** - -例子 - -```js -//创建inherit(Target,Origin)函数 - function inherit(Targetm,Origin){ - //1.创建私有构造函数,即闭包可以形成私有的构造函数 - function F(){} - //2.私有构造函数先继承 - F.prototype = Origin.prototype; - //3.实例化Target - Target.prototype = new F(); - //4.归位:防止constuctor指向紊乱,让Target构造函数指向归位 - Target.prototype.constructor = Target - //5.超类:可有可无; - //找到自己的超级父级,为了让我们知道Target到底继承自谁 - Target.prototype.uber = Origin.prototype; - } - - //创建构造函数 - function Father(){} - Father.prototype.sex = 'male'; - function Son(){} - - //执行圣杯模式 - inherit(Son,Father) - //实例化Son,Fathar - var son=new Son(); - var father = new Father(); - //Son增加属性 - Son.prototyope.skill='js' - //输出son属性,显示两个属性都存在 - console.log(son.__proto__.sex); - console.log(son.__proto__.skill); - //输出father属性,显示sex存在,skill为undefined - console.log(father.__proto__.sex); - console.log(father.__proto__.skill); - -``` - -# 分辨构造函数和普通函数 - -在函数内部加入严格模式,即‘use strict’,则会判断为构造函数 - -```js - function GetName(){ - 'use strict' - this.name = '周飘' - this.age = 18 - } - GetName(); -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-01\347\273\247\346\211\277\344\270\213.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-01\347\273\247\346\211\277\344\270\213.md" deleted file mode 100644 index 4aa11ee..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-01\347\273\247\346\211\277\344\270\213.md" +++ /dev/null @@ -1,201 +0,0 @@ -# 继承—圣杯模式完全体 - -定义:在原先的圣杯模式上,将inherit函数用对象inherit加以接受,并实现立即调用 - -```js - //创建对象inherit用于接受函数 - var inherit = (function(){ - return function(Target,Origin){ - //1.创建私有构造函数, - var F = function(){}; - //2.私有构造函数先继承 - F.prototype = Origin.prototype; - //3.实例化Target - Target.prototype = new F(); - //4.归位:防止constuctor指向紊乱,让Target构造函数指向归位 - Target.prototype.constructor = Target; - //5.超类:可有可无; - //找到自己的超级父级,为了让我们知道Target到底继承自谁 - Target.prototype.uber = Origin.prototype; - } - }())//立即执行 - - //创建构造函数 - function Father(){} - Father.prototype.sex = 'male'; - function Son(){} - - //执行圣杯模式 - inherit(Son,Father) - //实例化Son,Fathar - var son=new Son(); - var father = new Father(); - //Son增加属性 - Son.prototyope.skill='js' - //输出son属性,显示两个属性都存在 - console.log(son.__proto__.sex); - console.log(son.__proto__.skill); - //输出father属性,显示sex存在,skill为undefined - console.log(father.__proto__.sex); - console.log(father.__proto__.skill); - - -``` - -# class 语法糖 - -**定义**:严格意义上来讲,在`js`中是没有类这一概念的,但是使用class语法糖,使用`class`来定义类,类中定义的函数称为方法,不需要用关键字`function`也不需要用逗号进行分割。 - -**与传统的构造函数的不同点**:不管是使用构造函数还是`class`语法糖,其原理都是一样的。但是构造函数中的方法应该存放进原型对象,这一步需要我们手动去做,使用`class`语法糖的结构后则会自动将方法放入原型对象。 - -**要点** - -- 基于原型和原型链, 默认在**use strict(严格模式)** 的模式下进行的 -- 子类通过**extends**继承父类,继承时一定要有**super()**函数 -- super函数的作用就是继承父类的属性 - -构造函数 继承 的class语法糖使用 - -```js -//父类 -class Shape{ - //装属性的空间 - constructor(){ - this.pro = '图形'; - } - //自定义Draw方法 - Draw(){ - console.log('我是一个图形'); - } -} -//子类 -class Circle extends Shape{ - //属性传参,center与r是传进来的参数 - constructor(center,r){ - //必填,继承父类的属性 - super(); - this.r = r; - this.x = center[0];//把center当做数组,x是下标为0的center数组的值 - this.y = center[1]; - } - //自定义getArea方法 - getArea(){ - return (Math.PI*this.r*this.r).toFixed(2); //保留小数几位 - } - //定义函数move,用于更改x,y的值 - move(x,y){ - this.x += x; - this.y += y; - } - //自定义方法输出 - position(){ - console.log('我的位置在'+this.x+','+this.y); - } -} -//实例化与输出 -var circle =new Circle([0,0],5); -console.log(circle.getArea()); -console.log(circle.pro); -circle.position(); -circle.move(5,5); -circle.position(); -``` - -# 链式调用 - -- 每一个方法都要返回(return this) -- 输出可以直接接着点出这个方法 - -例子 - -```js - var plan = { - mon: function () { - console.log('吃饭'); - //return undefined - return this; - }, - tue: function () { - console.log('睡觉'); - return this; - }, - wed: function () { - console.log('打豆豆'); - return this; - }, - thu: function () { - console.log('学习'); - return this; - }, - fri: function () { - console.log('锻炼'); - return this; - }, - sat: function () { - console.log('逛街'); - return this; - } - } - //调用mon,再调用tue,再调用wed以此类推 - plan.mon().tue().wed().thu().fri().sat(); - -``` - -# for in 与 for of - -###for of(遍历属性对应的值,没有key) - -不是可迭代对象 - -```js -for (let e of[1, 2, 34, 4, 5]) { - console.log(e); - } -//输出 -//1,2,3,34,4,5 -``` - -### for in (遍历键值对,key,value) - -```js -var obj ={ - 'No1' : '第一', - 'No2' : '第二', - 'No3' : '第三' -} -for(let e in obj){ - console.log(e+':'+obj[e]); -} -//输出 -//'No1' : '第一', -//'No2' : '第二', -//'No3' : '第三' -``` - -# in 与 hasownProperty() - -###1,in(可以找自己的属性和原型里面的属性) - -```js -var obj = { - name:'周飘', - age:18 -} -obj.__proto__.gender = '女'; - - console.log('name' in obj); //true - console.log('gender' in obj); //true -``` - -### 2 hasOwnProperty()(只能找自己的属性,找不到原型里面的属性) - -```js -var obj = { - name:'周飘', - age:18 -} -obj.__proto__.gender = '女'; - console.log(obj.hasOwnProperty('name'));//true -console.log(obj.hasOwnProperty('gender'));//false -``` - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-02this.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-02this.md" deleted file mode 100644 index 1648ee7..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-02this.md" +++ /dev/null @@ -1,12 +0,0 @@ -# this - -**要点** - -- 在方法中,this 表示该方法所属的对象。 -- 如果单独使用,this 表示全局对象。即window -- 在函数中,this 表示全局对象。 -- 在函数中,在严格模式下,this 是未定义的(undefined)。 -- 在事件中,this 表示接收事件的元素。 -- 类似 call() 和 apply() 方法可以将 this 引用到任何对象。 -- 优先级new 显示 >隐式>默认 - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-03\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-03\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" deleted file mode 100644 index 47d9a90..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-03\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217.md" +++ /dev/null @@ -1,70 +0,0 @@ -# 正则表达式 - -## 普通字符 - - - -| 字符 | 描述 | -| ---------- | ------------------------------------------------------------ | -| **[ABC]** | 匹配 **[...]** 中的所有字符,例如 **[aeiou]** 匹配字符串 "google runoob taobao" 中所有的 e o u a 字母。 | -| **[^ABC]** | 匹配除了 **[...]** 中字符的所有字符,例如 **[^aeiou]** 匹配字符串 "google runoob taobao" 中除了 e o u a 字母的所有字母。 | -| **[A-Z]** | [A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母。 | -| **.** | 匹配除换行符(\n、\r)之外的任何单个字符,相等于 [^\n\r]。 | -| **[\s\S]** | 匹配所有。\s 是匹配所有空白符,包括换行,\S 非空白符,不包括换行。 | -| **\w** | 匹配字母、数字、下划线。等价于 [A-Za-z0-9_] | - -## 非打印字符 - -| 字符 | 描述 | -| :--- | :----------------------------------------------------------- | -| \cx | 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 | -| \f | 匹配一个换页符。等价于 \x0c 和 \cL。 | -| \n | 匹配一个换行符。等价于 \x0a 和 \cJ。 | -| \r | 匹配一个回车符。等价于 \x0d 和 \cM。 | -| \s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。 | -| \S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 | -| \t | 匹配一个制表符。等价于 \x09 和 \cI。 | -| \v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 | - -## 非打印字符 - -| 字符 | 描述 | -| :--- | :----------------------------------------------------------- | -| \cx | 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 | -| \f | 匹配一个换页符。等价于 \x0c 和 \cL。 | -| \n | 匹配一个换行符。等价于 \x0a 和 \cJ。 | -| \r | 匹配一个回车符。等价于 \x0d 和 \cM。 | -| \s | 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。注意 Unicode 正则表达式会匹配全角空格符。 | -| \S | 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。 | -| \t | 匹配一个制表符。等价于 \x09 和 \cI。 | -| \v | 匹配一个垂直制表符。等价于 \x0b 和 \cK。 | - -## 特定字符 - -| 特别字符 | 描述 | -| :------- | :----------------------------------------------------------- | -| $ | 匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,请使用 \$。 | -| ( ) | 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。 | -| * | 匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*。 | -| + | 匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+。 | -| . | 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。 | -| [ | 标记一个中括号表达式的开始。要匹配 [,请使用 \[。 | -| ? | 匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。 | -| \ | 将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n'。'\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("。 | -| ^ | 匹配输入字符串的开始位置,除非在方括号表达式中使用,当该符号在方括号表达式中使用时,表示不接受该方括号表达式中的字符集合。要匹配 ^ 字符本身,请使用 \^。 | -| { | 标记限定符表达式的开始。要匹配 {,请使用 \{。 | -| \| | 指明两项之间的一个选择。要匹配 \|,请使用 \|。 | - -## 限定符 - -| 字符 | 描述 | -| :---- | :----------------------------------------------------------- | -| * | 匹配前面的子表达式零次或多次。例如,**zo\*** 能匹配 **"z"** 以及 **"zoo"**。***** 等价于 **{0,}**。 | -| + | 匹配前面的子表达式一次或多次。例如,**zo+** 能匹配 **"zo"** 以及 "**zoo"**,但不能匹配 **"z"**。**+** 等价于 **{1,}**。 | -| ? | 匹配前面的子表达式零次或一次。例如,**do(es)?** 可以匹配 **"do"** 、 **"does"**、 **"doxy"** 中的 **"do"** 。**?** 等价于 **{0,1}** | -| {n} | n 是一个非负整数。匹配确定的 **n** 次。例如,**o{2}** 不能匹配 **"Bob"** 中的 **o**,但是能匹配 **"food"** 中的两个 **o**。 | -| {n,} | n 是一个非负整数。至少匹配n 次。例如,**o{2,}** 不能匹配 **"Bob"** 中的 **o**,但能匹配 **"foooood"** 中的所有 **o**。**o{1,}** 等价于 **o+**。**o{0,}** 则等价于 **o\***。 | -| {n,m} | m 和 n 均为非负整数,其中 n <= m。最少匹配 n 次且最多匹配 m 次。例如,**o{1,3}** 将匹配 **"fooooood"** 中的前三个 **o**。**o{0,1}** 等价于 **o?**。请注意在逗号和两个数之间不能有空格。 | - -## 贪婪与非贪婪 - diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217\344\270\216\345\274\202\345\270\270.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217\344\270\216\345\274\202\345\270\270.md" deleted file mode 100644 index 60bbcaa..0000000 --- "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/11-07\346\255\243\345\210\231\350\241\250\350\276\276\345\274\217\344\270\216\345\274\202\345\270\270.md" +++ /dev/null @@ -1,161 +0,0 @@ -# 正则表达式 - -## 捕获 - -- 在正则表达式中,用"()"进行分组,一对圆括号中的表达式就是一个分组 - - ```js - var str = 'aabb'; - var exp = /(\w)\1(\w)\2/; - console.log(exp.exec(str));//会输出a - console.log( RegExp.$2);//输出下标二为b - ``` - -## 非捕获 - -- 非捕获组只匹配结果,不能在表达式和程序中做进一步处理 - -| 举例说明 | | -| ---------- | ------------------------------------------------------------ | -| (hello) | 匹配 pattern 并获取这一匹配。所获取的匹配可以从产生的 Matches 集合得到。 | -| (?:hello) | 匹配 pattern 但不获取匹配结果 | -| (?=hello) | 正向肯定预查(look ahead positive assert。这是一个非获取匹配。 | -| (?!hello) | 正向否定预查(negative assert)。这是一个非获取匹配。 | -| (?<=hello) | 反向(look behind)肯定预查,与正向肯定预查(?=pattern)类似,只是方向相反。这是一个非获取匹配。 | -| (? - var str = 'HhHhaa \nh'; //i - var str1 = str.replace(/h/gi,'i'); //(需要被替换的,替换的) - console.log(str1); -``` - -## /m匹配多行 - -```js -console.log(/^world/m.exec('hello \nworld')); //hello -``` - -# 异常 - -异常捕获:try...catch... - -## 1错误之后的代码,不会执行 - -```js -try { - console.log('1'); //会输出 - throw new Error('error 1');//主动抛出错误 - console.log('2 '); //错误之后不会输出 - } catch (error) { - console.log('there is an error'); //会输出 - } - console.log('I am still running.'); //会输出 -``` - -##2不管有没有错误,放在finally最终都会执行 - -```js - + + + + +``` + +## 常用事件 + +### 1加载事件 + +**onload**:一张页面或一幅图像完成加载 + +### 2鼠标事件 + +- 鼠标按下时,通过事件对象 event中的属性 button 或 which 可以获取鼠标按键的编号e.button 事件对象中的 button属性可以获取鼠标按键的编号e.which 也可以获取鼠标的按键编号 0 左键 1滚轮 2右键 +- DOM3规定:click事件只能监听左键,只能通过mousedown和mouseup来判断鼠标键 + +| 鼠标事件 | 触发条件 | +| -------------- | ---------------- | +| ==onclick== | 鼠标点击左键触发 | +| oncontextmenu | 鼠标点击右键触发 | +| ==ondblclick== | 鼠标双击触发 | +| onmouseover | 鼠标经过触发 | +| onmouseout | 鼠标离开触发 | +| ==onfocus== | 获得鼠标焦点触发 | +| ==onblur== | 失去鼠标焦点触发 | +| onmousemove | 鼠标移动触发 | +| onmouseup | 鼠标弹起触发 | +| onmousedown | 鼠标按下触发 | + +### 3表单事件 + +| 表单事件 | 触发条件 | +| ------------ | ---------------------- | +| ==onfocus== | 表单获得焦点触发 | +| ==onblur== | 表单失去焦点触发 | +| oninput | 表单每次输入触发 | +| ==onchange== | 表单内容发生改变时触发 | +| ==onselect== | 表单文本被选取时触发 | +| ==onreset== | 表单重置时触发 | +| ==onsubmit== | 表单提交时触发 | + +### 4事件对象 + +| **事件对象属性方法** | **说明** | +| ---------------------- | ----------------------------------------- | +| **e.target** | 返回触发事件的对象 | +| e.type | 返回事件的类型 比如click mouseover 不带on | +| **e.preventDefault()** | 该方法阻止默认事件 比如禁止页面右键 | +| e.stopPropagation() | 阻止事件冒泡 | + +### 5键盘事件 + +| 键盘事件 | 触发条件 | +| ---------- | ------------------------ | +| onkeydown | 某个键盘按键被按下 | +| onkeyup | 某个键盘按键被松开 | +| onkeypress | 某个键盘按键被按下并松开 | + +## addEventListener + +###1.可以通过函数名来引用外部函数。 + +```js + + +``` + +### 2.可以在文档中添加许多事件,添加的事件不会覆盖已存在的事件 + +```js + + +``` + +###3可以在同一个元素中添加不同类型的事件 + +```js + + +``` + +### 4当传递参数值时,使用"匿名函数"调用带参数的函数 + +```js +

点击按钮执行一个计算。

+ +

+ + + +``` + +###5修改 button 元素的背景: + +```js + + + +``` + +###6使用 removeEventListener() 方法移除由 addEventListener() 方法添加的事件句柄: + +```js +// 添加
事件句柄 +document.getElementById("myDIV").addEventListener("mousemove", myFunction); + +// 移除
事件句柄 +document.getElementById("myDIV").removeEventListener("mousemove", myFunction); +``` + +###如果浏览器不支持 addEventListener() 方法, 你可以使用 attachEvent() 方法替代。 + +以下实例演示了跨浏览器的解决方法: + +```js + + +``` \ No newline at end of file diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-17\344\272\213\344\273\266\346\265\201.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-17\344\272\213\344\273\266\346\265\201.md" new file mode 100644 index 0000000..d2b43cb --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-17\344\272\213\344\273\266\346\265\201.md" @@ -0,0 +1,141 @@ +# 事件流 + +定义:一个事件的生命周期有三个阶段:捕捉,目标,冒泡。 + +# 事件冒泡 + +定义:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发。也就是说,事件会**从最内层的元素开始发生,一直向上传播,直到document对象。** + +## 阻止事件冒泡 + +```js +event.cancelBubble = true; //ie独有 +封装取消冒泡的函数:stopBubble(event) +event.stopPropagation();//1.阻止事件冒泡,但不会阻止默认行为,不支持ie9以下 +return false;//2.阻止事件冒泡,也阻止了默认行为 +event.preventDefault();//3.阻止默认行为,不阻止事件冒泡(可阻止鼠标右击出现菜单这个默认事件) +``` + +```js +var sbox = document.getElementById('sbox'); + var mbox = document.getElementById('mbox'); + sbox.onclick = (event)=>{ + //阻止冒泡 + //DOM IE + //事件对象 + var e = event || window.event; + if(e.stopPropagation){ + e.stopPropagation(); //DOM + }else{ + e.cancelBubble(); //ie + } + } +``` + +注意:不冒泡的事件:**focus,blur,change,submit,reset,select** + +# 事件捕获 + +事件从最不精确的对象(document 对象)开始触发,然后到最精确(也可以在窗口级别捕获事件,不过必须由开发人员特别指定),与事件冒泡相反,**事件会从最外层开始发生,直到最具体的元素。** + +当捕捉阶段完成后,浏览器会触发目标元素上任何已添加的事件类型监听器,这里的先后顺序是按照事件定义的先后顺序来的 + +# 事件委托 + +```js +var ul = document.getElementsByTagName('ul')[0]; + ul.onclick =(e)=>{ + //事件对象 + var event = e || window.event; + // console.log(event); + //事件源 + var target = event.srcElement || event.target; + alert(target.innerHTML); + } +``` + +1. 优点:利用事件冒泡实现事件委托 +2. 缺点:要处理避免事件冒泡 + + + +# 阻止默认行为 + +- 默认事件:表单提交,a标签跳转,右键菜单等 +- 事件委托是利用事件冒泡原理,让节点的父级代为执行事件。而不需要遍历元素的子节点,大大减少dom操作。 + +##1,传统事件绑定 + +1. 优点:兼容性好 +2. 缺点:不能绑定多个同类型事件 + +```js + //传统事件绑定1,耦合度比较高 + function show(num) { + console.log('I am Div'+num); + } + var btn1 = document.getElementById('btn1'); + btn1.onclick = function () { + console.log('我是传统事件绑定2'); + } +``` + +## 2,现代事件绑定 + +1. 优点:绑定多个同类型事件时会依次执行 +2. 缺点:兼容性较差 + +###2.1 DOM2事件的绑定 addEventListener + +- addEventListener(事件,处理函数,布尔值):支持ie9及以上的浏览器和其他浏览器 + +```js +var fn = fuction(){ + console.log(123) +} +addEventListener('click',fn) +``` + +###2.2 IE事件绑定 attachEvent + +- attachEvent(事件,fn,布尔值):支持IE10及以下的浏览器 + +```js +var fn = fuction(){ + console.log(123) +} +attachEvent('onclick',fn) +``` + +###2.3 传统事件取消 + +```js +btn.onclick = null; +//a标签跳转 +return false; +//右键菜单 +preventDefault() +``` + +###2.4 现代事件取消 + +```js +//DOM +btn.removeEventListener('click',fn); +//IE +btn.detachEvent('onclick',fn); +``` + +# 事件对象(ie: window.event) + + + +```js + e.onclick = () => { + //事件对象:ie:window.event 谷歌:event + var event = event || window.event; + //事件源对象:event.target:火狐 event.srcElement:ie 谷歌两个都可以 + var target = event.target || event.srcElement; + } +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-21jQuery\351\200\211\346\213\251\345\231\250.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-21jQuery\351\200\211\346\213\251\345\231\250.md" new file mode 100644 index 0000000..a63ab59 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-21jQuery\351\200\211\346\213\251\345\231\250.md" @@ -0,0 +1,90 @@ +# jQuery + +## jQuery版本 + +### [https://www.jq22.com/jquery-info122)](https://gitee.com/link?target=https%3A%2F%2Fwww.jq22.com%2Fjquery-info122%EF%BC%89) + +## 分类 + +### 1.基本选择器 + +| 选择器名称 | 样式 | +| ---------- | -------------------------------- | +| ID选择器 | $("#id") | +| 元素选择器 | $("div") | +| 类选择器 | $(".classname") | +| 组合选择器 | $(".classname,.classname1,#id1") | + +### 2.层次选择器 + +| 选择器名称 | 样式 | +| -------------------- | ---------------------- | +| 子元素选择器 | $("#id>.classname ") | +| 后代元素选择器 | $("#id .classname ") | +| 紧邻下一个元素选择器 | $("#id + .classname ") | +| 兄弟元素选择器 | $("#id ~ .classname ") | + +### 3.1过滤选择器(重点) + +| 选择器作用 | 样式 | +| ------------------------------- | ---------------------- | +| 第一个li | $("#id>.classname ") | +| 最后一个li | $("#id .classname ") | +| 挑选下标为偶数的li | $("#id + .classname ") | +| 挑选下标为奇数的li | $("#id ~ .classname ") | +| 下标等于 4 的li(第五个 li 元素) | $("li:eq(4)") | +| 下标大于 2 的li | $("li:gt(2)") | +| 下标小于 2 的li | $("li:lt(2)") | +| 挑选除 id="runoob" 以外的所有li | $("li:not(#runoob)") | + +### **3.2内容过滤选择器** + +| 选择器作用 | 样式 | +| ---------------------------- | -------------------------- | +| 包含 Runob文本的元素 | $("div:contains('Runob')") | +| 不包含子元素或者文本的空元素 | $("td:empty") | +| 含有选择器所匹配的元素 | $("div:has(selector)") | +| 含有子元素或者文本的元素 | $("td:parent") | + +### 3.3**可见性过滤选择器** + +| 选择器作用 | 样式 | +| ---------------------------------------- | --------------- | +| 匹配所有不可见元素,或type为hidden的元素 | $("li:hidden") | +| 匹配所有可见元素 | $("li:visible") | + +### 3.4属性过滤选择器 + +| 选择器作用 | 样式 | +| ------------------------------------------ | ---------------------------- | +| 所有含有 id 属性的 div 元素 | $("div[id]") | +| id属性值为123的div 元素 | $("div[id='123']") | +| id属性值不等于123的div 元素 | $("div[id!='123']") | +| id属性值以qq开头的div 元素 | $("div[id^='qq']") | +| id属性值以zz结尾的div 元素 | $("div[id$='zz']") | +| id属性值包含bb的div 元素 | $("div[id*='bb']") | +| 多属性选过滤,同时满足两个属性的条件的元素 | $("input[id] [name$='man']") | + +### 3.5**状态过滤选择器** + +| 选择器作用 | 样式 | +| ------------------ | -------------------- | +| 匹配可用的 input | $("input:enabled") | +| 匹配不可用的 input | $("input:disabled") | +| 匹配选中的 input | $("input:checked") | +| 匹配选中的 option | $("option:selected") | + +### 4.表单选择器 + +| 选择器作用 | 样式 | +| ------------------------------------------------------------ | -------------- | +| 匹配所有 input, textarea, select 和 button 元素 | $(":input") | +| 所有的单行文本框,$(":text") 等价于$("[type=text]"),推荐使用$("input:text")效率更高,下同 | $(":text") | +| 所有密码框 | $(":password") | +| 所有单选按钮 | $(":radio") | +| 所有复选框 | $(":checkbox") | +| 所有提交按钮 | $(":submit") | +| 所有重置按钮 | $(":reset") | +| 所有button按钮 | $(":button") | +| 所有文件域 | $(":file") | + diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-22jQuery\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-22jQuery\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" new file mode 100644 index 0000000..3065893 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-22jQuery\345\261\236\346\200\247\344\270\216\345\205\203\347\264\240.md" @@ -0,0 +1,137 @@ +## 属性 + +### 分类 + +1. **固有属性**;标签本身存在的属性 + 返回值是bool的属性: checked ,selected, disabled +2. **自定义属性**;用户自己定义的属性 + +### 属性获取 + +| 方法 | 说明 | 举例 | +| --------------- | ------------------------------------------------------------ | ----------------------------- | +| ==**attr**( )== | 获取指定的属性值,**有则返回属性值,没有选中返回undefined。** | attr('checked'),attr('name') | +| ==**prop**()== | 获取具有**true**和**false**两个属性的属性值 | prop('checked') | + +### 属性设置 + +1. attr()设置属性 + + ```js + $('#aa').attr('checked','checked'); + ``` + +2. prop()设置属性 + + ```js + $('#aa').prop('checked','checked'); + ``` + +3. removeAttr()移除属性 + + ```js + $('#aa').removeAttr('id'); + ``` + +## 元素 + +### 元素增加 + +| 元素方法 | 作用 | +| ---------------------------------- | -------------------------------------------------- | +| append() | 在被选元素的结尾插入内容 | +| append() | 在被选元素的开头插入内容 | +| after() | 在被选元素之后插入内容 | +| before() | 在被选元素之前插入内容 | +| $(content).**prependTo**(selector) | 把content元素或内容加入selector元素开头 | +| $(content).appendTo(selector) | 把content元素或内容插入slector元素内,默认是在尾部 | + +1. 在被选元素的结尾插入内容 + + ```js +

This is a paragraph.

+ + $("p").append(" 结尾后."); + ``` + +2. 在被选元素的开头插入内容 + + ```js +

This is a paragraph.

+ + $("p").prepend("开头前. "); + ``` + +3. 在被选元素之后插入内容 + + ```js +

This is a paragraph.

+ + $("p").after("元素之后插入内容. "); + ``` + +4. 在被选元素之前插入内容 + + ```js +

This is a paragraph.

+ + $("p").before("元素之前插入内容. "); + + ``` + +5. 通过 append() 和 prepend() 方法添加若干新元素 + + ```js +

This is a paragraph.

+ + var txt1="

Text.

"; // 以 HTML 创建新元素 + var txt2=$("

").text("Text."); // 以 jQuery 创建新元素 + var txt3=document.createElement("p"); + txt3.innerHTML="Text."; // 通过 DOM 来创建文本 + $("body").append(txt1,txt2,txt3); // 追加新元素 + } + ``` + +6. 通过 after() 和 before() 方法添加若干新元素 + + ```js +

This is a paragraph.

+ var txt1="I "; // 以 HTML 创建元素 + var txt2=$("").text("love "); // 通过 jQuery 创建元素 + var txt3=document.createElement("big"); // 通过 DOM 创建元素 + txt3.innerHTML="jQuery!"; + $("p").after(txt1,txt2,txt3); // 在 img 之后插入新元素 + } + ``` + + + +### 元素删除 + +| 元素方法 | 作用 | +| ---------- | ---------------------- | +| remove() | 标签和标签内容都被移除 | +| empty() | 只移除内容 | + +1. 标签和标签内容都被移除 + + ```js + $('[class="blue"]').remove(); + ``` + +2. 只移除内容 + + ```js + $('[class="green"]').empty(); + ``` + +## 操作元素内容 + +| 方法 | 说明 | +| ----------------- | ---------------------------------- | +| html() | 获取元素的html内容 | +| html('html,内容') | 设定元素的内容 | +| text() | 获取元素的内容,不识别html标签 | +| text('text 内容') | 设置元素的文本内容,不识别html标签 | +| val() | 获取元素的值(表单元素) | +| val('值') | 设定元素的值 | \ No newline at end of file diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-23jQuery\344\272\213\344\273\266.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-23jQuery\344\272\213\344\273\266.md" new file mode 100644 index 0000000..67ab5bb --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-23jQuery\344\272\213\344\273\266.md" @@ -0,0 +1,55 @@ +# 事件 + +## 页面事件 + +1. window.onload(多次调用只会执行最后一个) + 当页面所有DOM元素以及所有外部文件(图片、外部 CSS、外部JavaScript等)加载完成之后才会执行。这里的所有DOM元素,指的是HTML部分的代码 + + ``` + + ``` + +2. $(document).ready()(可多次调用) + +## 鼠标事件 + +| 事件 | 说明 | +| --------- | ------------ | +| **click** | 鼠标单击事件 | +| dblclick | 鼠标双击事件 | +| mouseover | 鼠标移入事件 | +| mouseout | 鼠标移出事件 | +| mousedown | 鼠标按下事件 | +| mouseup | 鼠标松开事件 | +| mousemove | 鼠标移动事件 | + +## 键盘事件 + +| 键盘事件 | 触发条件 | +| ----------- | ------------------------ | +| **keydown** | 某个键盘按键被按下 | +| **keyup** | 某个键盘按键被松开 | +| keypress | 某个键盘按键被按下并松开 | + +## 表单(焦点)事件 + +| 事件 | 触发条件 | +| ------ | ------------------------------------------------------- | +| focus | 获取焦点时触发的事件 | +| blur | 失去焦点时触发的事件 | +| select | 当 textarea 或文本类型的 input 元素中的文本被选择时触发 | +| change | 表单改变时触发的事件 | + +## 复合事件 + +#### 1,hover() + +- 该方法相当于mouseover与mouseout事件的组合 + +```js +$("li").hover(function() { + $("li").css("background", "gray"); + },function() { + $("li").css("background", "green"); + }); +``` \ No newline at end of file diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-24jQuery\344\272\213\344\273\266\345\257\271\350\261\241.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-24jQuery\344\272\213\344\273\266\345\257\271\350\261\241.md" new file mode 100644 index 0000000..f45db16 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-24jQuery\344\272\213\344\273\266\345\257\271\350\261\241.md" @@ -0,0 +1,22 @@ +# 事件对象 + +定义:每一个事件的绑定函数,都接受一个事件对象为参数。这个事件对象当中,包括了很多事件的信息。 + +| 事件对象 | 作用 | +| ------------------------------------------------------------ | ------------------------------------------------------------ | +| event.currentTarget | 事件绑定节点 | +| event.target | 事件的触发节点(冒泡行为) | +| event.delegateTarget | 绑定事件的对象,通常就是 event.currentTarget | +| *event.relatedTarget* | 相关的节点,主要用于一些转换式的事件。比如鼠标移入,表示它从哪个节点来的 | +| *event.which* | 标明哪个按键触发了事件,鼠标和键盘的键标识统一在这个属性中了 | +| *event.preventDefault()* **,** *event.isDefaultPrevented()* | 禁止默认行为 | +| *event.stopImmediatePropagation()* **,** *event.isImmediatePropagationStopped()* | 不光禁止冒泡,还终止绑定函数链的继续进行。 | +| *event.stopPropagation()* **,** *event.isPropagationStopped()* | 禁止冒泡 | +| *event.pageX* **,** *event.pageY* | 事件触发时相对于 ***document*** 的鼠标位置 | +| *event.namespace* | 事件触发时的名字空间,比如 ***trigger('click.namespace')\*** | +| *event.data* | 额外传入的数据 | +| *event.result* | 上一个绑定函数的返回值 | +| *event.timeStamp* | 事件触发时的时间,其值为 ***(new Date).getTime()\*** | +| *event.type* | 事件类型 | + +如果一个绑定函数最后返回了 **false** ,则默认是 **event.preventDefault()** 和 **event.stopPropagation()** 行为。 \ No newline at end of file diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-27jQuery\346\226\271\346\263\225.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-27jQuery\346\226\271\346\263\225.md" new file mode 100644 index 0000000..1b05090 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-27jQuery\346\226\271\346\263\225.md" @@ -0,0 +1,101 @@ +##方法 + +### 事件绑定方法 + +1. bind() + 在被选元素及子元素上添加一个或多个事件处理程序。 + + ```js + $('button').bind({"事件名称1 事件名称2 事件名称3":匿名函数}) + ``` + + + +2. on() + 在被选元素及子元素上添加一个或多个事件处理程序。 + + ```js + $('button').on({"事件名称1 事件名称2 事件名称3":匿名函数}) + ``` + + + **on() 和 click() 的区别:**二者在绑定静态控件时没有区别,但是如果面对动态产生的控件,只有 on() 能成功的绑定到动态控件中 + +3. delegate + + 为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。 + + ```js + $('button').delegate({"事件名称1","事件名称2 事件名称3":匿名函数}) + ``` + +### 解绑函数 + +1. off() + 不带参时默认全部事件解绑 + 带参数时,解绑指定事件 + +2. unbind + 2.1该方法能够移除所有的或被选的事件处理程序,或者当事件发生时终止指定函数的运行。 + + 2.2只能解绑用jQuery的bind方法以及用jQuery方法注册的事件处理程序。 + + ```js + $("选择器").unbind():如果没有参数,则表示解绑该元素绑定的所有事件 + $("选择器").unbind("事件名称"):解绑该元素绑定的某种事件。 + $("选择器").unbind("事件名称","事件名称"):多个参数之间用逗号隔开,表示解绑多个事件。 + ``` + +### event + +当回调函数被触发后,它们的参数通常是一个事件对象event。 + +##### 1、event方法: + +- **preventDefault**:取消浏览器默认行为。 +- **stopPropagation**:阻止事件向上层元素传播。 + +```js + +``` + +### 过滤方法 + +| 过滤器名 | jQuery语法 | 说明 | 返回值 | +| -------- | ------------------------------------------------------------ | ---------------------------------- | --------------------- | +| is() | $(*selector*).is(*selectorElement,*function*(index*,*element)*) | 用于查看选择的元素是否匹配选择器。 | bool | +| not() | $('[class=fruit]').not(':checked'); | 过滤“不符合条件”的元素 | 余下符合条件的元素 | +| filter() | $('li').filter('.red') | 选取符合条件的元素 | 集合元素 | +| has() | $('ul').has('li') | 检测某个元素是否在另一个元素中: | 集合元素 | +| hasClass | $('from').hasClass(“类名”) | 用于判断元素是否包含指定的类名 | bool | +| eq() | $(':checked').eq('index') | 根据元素集合的下标来过滤 | 返回下标为index的元素 | + +## 事件委托 + +``` +//target:源对象 +//currenttarget:当前调用该事件的对象 +//delegatetarget:委托对象 + $('ul').click( + function (event) { + var e = event || window.event; + console.log(this==e.currentTarget); + } + ) +``` + diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-29Ajax.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-29Ajax.md" new file mode 100644 index 0000000..f895d39 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-11-29Ajax.md" @@ -0,0 +1,93 @@ +# Ajax + +#### 1,概念与特点; + +- 一种创建交互式网页应用的网页开发技术,用于浏览器和服务器之间进行数据交互 +- 使用脚本操纵HTTP和Web服务器进行数据交换,不会导致页面重载 + +#### 2. AJAX 的优缺点 + +- 不需要插件的⽀持,原⽣ js 就可以使用 +- 用户体验好(不需要刷新页面就可以更新数据) +- 减轻服务端和带宽的负担 +- 缺点:搜索引擎的支持度不够 + +### 二,http + +#### 1,简述 + +- 超文本传输协议(HyperText Transfer Protocol)规定了Web浏览器如何从Web服务器获取文档和向Web服务器提交表单内容,以及Web服务器如何响应这些请求和提交 + +#### 2,属性 + +##### (1) responseText:作为响应体返回的文本 + +##### (2) responseXML:如果响应的内容类型是"text/xml"或"application/xml",那就是包含响应数据的 XML DOM 文档 + +##### (3) status:响应的 HTTP 状态 + +##### (4) statusText:响应的 HTTP 状态描述 + +##### (5) readyState:返回HTTP请求状态 + +- 0 open()尚未调用 UNSENT +- 1 open()已调用 OPENED +- 2 接收到头信息 HEADERS_RECEIVED +- 3 接收到响应主体 LOADING +- 4 响应完成 DONE,所有的浏览器都触发该事件 + +##### (6) readystatechange 请求状态改变事件 + +#### 3,http请求 + +##### (1)创建对象;XMLHttpRequest() + +##### (2)请求设置;open("GET","路径",true) + +##### (3)发送请求;send() + +``` +var newAj=new XMLHttpRequest(); + newAj.open("GET","json练习.json",true); + newAj.send(); + newAj.onreadystatechange=function(){ + if (newAj.readyState==4) { + if (newAj.status==200) { + var obj=JSON.parse(newAj.responseText); + console.log(obj); + } + } + } +``` + +### 三,JSON与对象之间的转换 + +#### 1,JSON.stringify(obj):将对象转成json数据格式 + +#### 2,JSON.parse(json):将json转成对象 + +``` + +``` + +#### 3,遍历 for in + +```js + +``` \ No newline at end of file diff --git "a/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-12-01Ajax02.md" "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-12-01Ajax02.md" new file mode 100644 index 0000000..7d984b6 --- /dev/null +++ "b/49\347\224\260\351\221\253\345\274\272/\347\254\224\350\256\260/22-12-01Ajax02.md" @@ -0,0 +1,130 @@ +#一,jQuery Ajax + +#### 1,$.get();执行get请求方式的ajax + +``` + $('button').eq(0).click( + function () { + $.get('data.json',{a:100,b:200},function (data) { + console.log(data); + },'json'); + } + ) +``` + +#### 2,$.post();执行post请求方式的ajax + +``` + $('button').eq(1).click( + function () { + $.post('data.json',{a:100,b:200},function (data) { + console.log(data); + },'json'); + } + ) +``` + +#### 3,$.getJSON() + +- 通过Ajax获取服务器中JSON格式的数据 +- “全局方法”,直接定义在jQuery对象(即“$”)下的方法 + +``` + $('button').eq(2).click( + function () { + $.getJSON('data.json',function (data) { + console.log(data); + }) + } + ) +``` + +#### 4,$.getScript();动态加载JavaScript的方法 + +- 通过AJAX来获取并运行一个外部JavaScript文件 +- 异步跨域加载JavaScript文件,可避免提前加载JavaScript文件 +- 减少服务器和客户端的负 担,加快页面加载速度 + +``` + $('button').eq(3).click( + function () { + $.getScript('test.js'); + } + ) +``` + +#### 5,$.ajax();核心方法,所有的其他方法都是在内部使用此方法 + +- 以上方法用ajax()都能实现 + +``` + $('button').eq(4).click( + function () { + $.ajax({ + url:'data.json', + type:'get', + data:{a:100,b:200}, + success:(data) => console.log(data), + error:()=> console.log('请求失败') + }) + } + ) +``` + +#一 原生AJAX + +#### 1,GET方法;传送数据量小,处理效率高,安全性低,会被缓存 + +- send()中不需要添加任何参数,因为在连接服务器的时候就已经发送 +- get请求就不必要设置 xhr.setRequestHeader(header,value) + +``` +var newAj=new XMLHttpRequest(); + newAj.open("GET","json练习.json",true); + newAj.send(); + newAj.onreadystatechange=function(){ + if (newAj.readyState==4) { + if (newAj.status==200) { + var obj=JSON.parse(newAj.responseText); + console.log(obj); + } + } + } +``` + +#### 2,post方法;传送数据量大,处理效率低,安全性高,不会被缓存 + +- send()中需要添加参数,建议设置请求头 +- 参数可以是null或者xhr.send()|send(带有参数的)post请求在传递值的情况下必须 设置 xhr.setRequestHeader(header,value) + +``` + var xhr = new XMLHttpRequest(); + xhr.open('post', 'data.json', true); + xhr.send({ a: 100, b: 200 }); + //设置行头 + xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xhr.onreadystatechange = function () { + if (xhr.readyState == 4 && xhr.status == 200) { + console.log(xhr.response['No1']); + // 手动转成对象 + // var obj = JSON.parse(xhr.response); + } + } +``` + +#### 3.响应数据处理;将返回的json类型的数据转换成对象 + +##### 1,手动转换 + +``` +var obj = JSON.parse(xhr.response) +console.log(obj.name) +``` + +##### 2,自动转换 + +``` +//创建对象后设置: +xhr.responseType = 'json'; +console.log(xhr.response.name) +``` \ No newline at end of file -- Gitee