|
1 | 1 | # JavaScript学习 |
2 | | -## 总体目录 |
| 2 | +## JavaScript基础知识剖析 |
| 3 | +* [01-01](https://github.com/TYRMars/JSlearn#01-01) `变量类型和计算(1)` |
| 4 | +* [01-02](https://github.com/TYRMars/JSlearn#01-02) `变量类型和计算(2)` |
| 5 | +## JS小练习 |
3 | 6 | * JSDemo JS小程序 |
4 | 7 | * JDMenu 京东无延迟菜单 |
5 | 8 | * DatePicker组件开发 |
6 | 9 | * 手风琴效果开发 |
7 | 10 | ## 知识点学习 |
| 11 | +## 01-01 |
| 12 | +### 变量类型和计算(1) |
| 13 | +* JS中使用typeof能得到的哪些类型 |
| 14 | +* 何时使用`===`何时使用 `==` |
| 15 | +* JS中有哪些内置函数 |
| 16 | +* JS变量按照`存储方式`区分为哪些类型,并描述其特点 |
| 17 | +* 如何理解`JSON` |
| 18 | +#### 值类型 |
| 19 | +* 从内存来说值类型是把每一个值存储在变量类型的每一个位置 |
| 20 | +```JavaScript |
| 21 | +var a = 100; |
| 22 | +var b = a; |
| 23 | +a = 200 |
| 24 | +console.log(b);//100 |
| 25 | +``` |
| 26 | +#### 引用类型 |
| 27 | +* 把a赋值*-成一个对象,a的位置是通过指针指向一个位置 |
| 28 | +* 把b赋值成a,其实是定义一个b,b的指针指向了那个对象位置 |
| 29 | +* 也就是有两份 `age:20`的对象 |
| 30 | +* 对象的引用,就相当于复写一个对象,这两个对象之间相互独立 |
| 31 | +* 引用类型:对象、数组、函数 |
| 32 | +```JavaScript |
| 33 | +var a ={age:20}; |
| 34 | +var b = a; |
| 35 | +b.age = 21; |
| 36 | +console.log(a.age); //21 |
| 37 | +``` |
| 38 | +* typeof运算符 |
| 39 | +```JavaScript |
| 40 | +typeof undefined //undefined |
| 41 | +typeof 'abc' // String |
| 42 | +typeof 123 //number |
| 43 | +typeof true //boolean |
| 44 | +typeof {} //object |
| 45 | +typeof [] //object |
| 46 | +typeof null //object |
| 47 | +typeof console.log //funciton |
| 48 | +``` |
| 49 | +#### 变量计算-强制类型转换 |
| 50 | +* 字符串拼接 |
| 51 | +```JavaScript |
| 52 | +var a = 100 + 10;//110 |
| 53 | +var b = 100 + '10';//10010 |
| 54 | +``` |
| 55 | +* == 运算符 |
| 56 | +```JavaScript |
| 57 | +100 == '100' //true |
| 58 | +0 == '' //true |
| 59 | +null == undefined //true |
| 60 | +``` |
| 61 | +* if语句 |
| 62 | +```JavaScript |
| 63 | +var a = true; |
| 64 | +if(a){ |
| 65 | + //.... |
| 66 | +} |
| 67 | +var b = 100; |
| 68 | +if (b) { |
| 69 | + //.... |
| 70 | +} |
| 71 | +var c = ''; |
| 72 | +if (c) { |
| 73 | + //... |
| 74 | +} |
| 75 | +``` |
| 76 | +* 逻辑运算 |
| 77 | +```JavaScript |
| 78 | +console.log(10 && 0); //0 |
| 79 | +console.log('' || 'abc'); //abc |
| 80 | +console.log(!window.acb); //true |
| 81 | + |
| 82 | +//判断一个变量会被当做true还是false |
| 83 | +var a = 100; |
| 84 | +console.log(!!a); |
| 85 | +``` |
| 86 | + |
| 87 | +--- |
| 88 | + |
8 | 89 | ### JSDemo JS小程序 |
9 | | -#### |
| 90 | +#### |
10 | 91 | ### JDMenu 京东无延迟菜单 |
11 | 92 | #### 1.开发普通二级菜单 |
12 | 93 | * 事件代理方式进行绑定 |
13 | | -* mouseenter和mouseover的区别: |
14 | | -* 使用mouseover/mouseout时候,如果鼠标移动到子元素上,即便没有离开父元素,也会触发父元素的mouseout事件; |
15 | | -* 使用mouseenter/mouseleave时,如果鼠标没有离开父元素,在其子元素上任意移动,也不会触发mouseleave事件; |
| 94 | +* `mouseenter`和`mouseover`的区别: |
| 95 | +* 使用`mouseover/mouseout`时候,如果鼠标移动到子元素上,即便没有离开父元素,也会触发父元素的`mouseout`事件; |
| 96 | +* 使用`mouseenter/mouseleave`时,如果鼠标没有离开父元素,在其子元素上任意移动,也不会触发`mouseleave`事件; |
16 | 97 | #### 2.加入延迟优化 |
17 | | -* 切换子菜单的时候,用setTimeout设置延迟 |
18 | | -* debounce去抖o((⊙﹏⊙))o.技术: |
| 98 | +* 切换子菜单的时候,用`setTimeout`设置延迟 |
| 99 | +* `debounce`去抖o((⊙﹏⊙))o.技术: |
19 | 100 | * 在事件被频繁触发时买只执行一次 |
20 | 101 | #### 3.基于用户行为预测的切换技术 |
21 | 102 | * 跟踪鼠标的移动 |
|
28 | 109 | * 渲染当月日历表格 |
29 | 110 | * 用于点击时取日期值 |
30 | 111 | ##### 日期对象 |
31 | | -* newDate(year,month-1,date) |
| 112 | +* `newDate(year,month-1,date)` |
32 | 113 | * 月份需要-1 |
33 | 114 | * 越界自动进退位 |
34 | | -* getFullYear()/getMonth()/getDate() |
35 | | -* getDay()获取当前日期是周几? |
| 115 | +* `getFullYear()/getMonth()/getDate()` |
| 116 | +* `getDay()`获取当前日期是周几? |
0 commit comments