Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit a597330

Browse filesBrowse files
committed
2019.11.08
1 parent 7a7bcc8 commit a597330
Copy full SHA for a597330

3 files changed

+208-8Lines changed: 208 additions & 8 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎Cute-Interview/1-HTML/README.md‎

Copy file name to clipboardExpand all lines: Cute-Interview/1-HTML/README.md
+5-5Lines changed: 5 additions & 5 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
###
1+
### 1. <b>和<strong>的区别
22

3-
###
3+
### 2. html语义化的理解
44

55
###
66

@@ -20,9 +20,9 @@
2020

2121
###
2222

23-
### 1. <b>和<strong>的区别
23+
###
2424

25-
### 2. html语义化的理解
25+
###
2626

2727
###
2828

@@ -56,4 +56,4 @@
5656

5757
###
5858

59-
###
59+
###
Collapse file

‎Cute-Interview/2-CSS/README.md‎

Copy file name to clipboardExpand all lines: Cute-Interview/2-CSS/README.md
+30-2Lines changed: 30 additions & 2 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
### 1. 移动端适配1px的问题
22

3+
1. 局部处理
4+
`meta` 标签中的 `viewport` 属性 ,`initial-scale` 设置为 `1 rem` 按照设计稿标准走,外加利用 `transfrome``scale(0.5)` 缩小一倍即可;
5+
6+
2. 全局处理
7+
`meta` 标签中的 `viewport` 属性 ,`initial-scale` 设置为 `0.5 rem` 按照设计稿标准走即可。
8+
39
### 2. 介绍flex布局
410

511
### 3. CSS 方式设置垂直居中
@@ -16,9 +22,31 @@
1622

1723
### 9. rem、flex的区别(root em)/em和px的区别
1824

19-
### 10. 重排和重绘,什么情况会触发重排和重绘?
25+
### 10. 什么是重排和重绘,什么情况会触发重排和重绘?
2026

21-
###
27+
### 11. 单行 / 多行文本溢出显示...
28+
29+
* 单行:
30+
31+
```css
32+
overflow: hidden;
33+
text-overflow:ellipsis;
34+
white-space: nowrap;
35+
```
36+
37+
* 多行:
38+
39+
```css
40+
display: -webkit-box;
41+
-webkit-box-orient: vertical;
42+
-webkit-line-clamp: 3;
43+
overflow: hidden;
44+
```
45+
46+
`-webkit-line-clamp` 用来限制在一个块元素显示的文本的行数。 为了实现该效果,它需要组合其他的 `WebKit` 属性。常见结合属性:
47+
48+
1、`display: -webkit-box;` 必须结合的属性 ,将对象作为弹性伸缩盒子模型显示 。
49+
2、`-webkit-box-orient` 必须结合的属性 ,设置或检索伸缩盒对象的子元素的排列方式 。
2250

2351
###
2452

Collapse file

‎Cute-Interview/3-JavaScript/README.md‎

Copy file name to clipboardExpand all lines: Cute-Interview/3-JavaScript/README.md
+173-1Lines changed: 173 additions & 1 deletion
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
### 2. 如何解决跨域的问题
44

5+
所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
6+
7+
**跨域解决方案**
8+
1. 通过jsonp跨域
9+
2. document.domain + iframe跨域
10+
3. location.hash + iframe
11+
4. window.name + iframe跨域
12+
5. postMessage跨域
13+
6. 跨域资源共享(CORS)
14+
7. nginx代理跨域
15+
8. nodejs中间件代理跨域
16+
9. WebSocket协议跨域
17+
518
### 3. promise、async有什么区别
619

720
### 4. 介绍this各种情况
@@ -16,6 +29,50 @@
1629

1730
### 9. 防抖和节流的区别
1831

32+
1. 节流
33+
34+
**节流(throttle)**:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效。
35+
函数节流就是fps游戏的射速,就算一直按着鼠标射击,也只会在规定射速内射出子弹。
36+
37+
```js
38+
function throttle(fun, delay) {
39+
let last, deferTimer
40+
return function (args) {
41+
let that = this
42+
let _args = arguments
43+
let now = +new Date()
44+
if (last && now < last + delay) {
45+
clearTimeout(deferTimer)
46+
deferTimer = setTimeout(function () {
47+
last = now
48+
fun.apply(that, _args)
49+
}, delay)
50+
}else {
51+
last = now
52+
fun.apply(that,_args)
53+
}
54+
}
55+
}
56+
```
57+
58+
2. 防抖
59+
60+
**防抖(debounce)**:在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时。
61+
函数防抖就是法师发技能的时候要读条,技能读条没完再按技能就会重新读条。
62+
63+
```js
64+
function debounce(fun, delay) {
65+
return function (args) {
66+
let that = this
67+
let _args = args
68+
clearTimeout(fun.id)
69+
fun.id = setTimeout(function () {
70+
fun.call(that, _args)
71+
}, delay)
72+
}
73+
}
74+
```
75+
1976
### 10. 介绍各种异步方案
2077

2178
### 11. JS里垃圾回收机制是什么,常用的是哪种,怎么处理的
@@ -66,11 +123,126 @@ var ulNode = document.getElementById("list");
66123

67124
https://juejin.im/entry/5a968ba56fb9a06340524128
68125

126+
https://muyiy.cn/question/js/4.html
127+
128+
简单介绍:
129+
130+
* ES6 提供了新的数据结构 `Set` 它类似于**数组**,但是成员的值都是**唯一**的,**没有重复的值**
131+
132+
* ES6 提供了 `Map` 数据结构。它类似于**对象**,也是**键值对**的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,**Object 结构提供了“字符串—值”的对应****Map 结构提供了“值—值”的对应**,是一种更完善的 Hash 结构实现。
133+
134+
----
135+
Set 和 Map 主要的应用场景在于 **数据重组****数据储存**
136+
137+
Set 是一种叫做**集合**的数据结构,Map 是一种叫做**字典**的数据结构。
138+
139+
#### 1. Set
140+
141+
类似于数组,但成员是唯一且无序的,没有重复的值。
142+
143+
**Set 本身是一种构造函数,用来生成 Set 数据结构。**
144+
145+
```js
146+
const s = new Set()
147+
[1, 2, 3, 4, 3, 2, 1].forEach(x => s.add(x))
148+
149+
for (let i of s) {
150+
console.log(i) // 1 2 3 4
151+
}
152+
153+
// 去重数组的重复对象
154+
let arr = [1, 2, 3, 2, 1, 1]
155+
[... new Set(arr)] // [1, 2, 3]
156+
```
157+
158+
Set 对象允许你储存任何类型的唯一值,无论是原始值或者是对象引用。
159+
160+
**注意:** 向 Set 加入值的时候,不会发生类型转换,所以 `5``"5"` 是两个不同的值。
161+
162+
```js
163+
let set = new Set();
164+
let a = NaN;
165+
let b = NaN;
166+
set.add(a);
167+
set.add(b);
168+
set // Set {NaN}
169+
170+
let set1 = new Set()
171+
set1.add(5)
172+
set1.add('5')
173+
console.log([...set1]) // [5, "5"]
174+
```
175+
176+
Set 实例属性和方法:
177+
178+
* `constructor`: 构造函数
179+
* `size`:元素数量
180+
* `add(value)`:新增,相当于 array 里的 `push`
181+
* `delete(value)`:存在即删除集合中 `value`
182+
* `has(value)`:判断集合中是否存在 `value`
183+
* `clear()`:清空集合
184+
185+
Set 实例遍历方法(遍历顺序为插入顺序):
186+
187+
* `keys()`:返回一个包含集合中所有键的迭代器
188+
* `values()`:返回一个包含集合中所有值得迭代器
189+
* `entries()`:返回一个包含Set对象中所有元素得键值对迭代器
190+
* `forEach(callbackFn, thisArg)`:用于对集合成员执行 `callbackFn` 操作,如果提供了 `thisArg` 参数,回调中的 `this` 会是这个参数,没有返回值
191+
192+
```js
193+
let set = new Set([1, 2, 3])
194+
console.log(set.keys()) // SetIterator {1, 2, 3}
195+
console.log(set.values()) // SetIterator {1, 2, 3}
196+
console.log(set.entries()) // SetIterator {1, 2, 3}
197+
198+
for (let item of set.keys()) {
199+
console.log(item);
200+
} // 1 2 3
201+
for (let item of set.entries()) {
202+
console.log(item);
203+
} // [1, 1] [2, 2] [3, 3]
204+
205+
set.forEach((value, key) => {
206+
console.log(key + ' : ' + value)
207+
}) // 1 : 1 2 : 2 3 : 3
208+
console.log([...set]) // [1, 2, 3]
209+
```
210+
211+
Set可以使用 map、filter 方法:
212+
213+
```js
214+
let set = new Set([1, 2, 3])
215+
set = new Set([...set].map(item => item * 2))
216+
console.log([...set]) // [2, 4, 6]
217+
218+
set = new Set([...set].filter(item => (item >= 4)))
219+
console.log([...set]) //[4, 6]
220+
```
221+
222+
Set 很容易实现交集(Intersect)、并集(Union)、差集(Difference):
223+
224+
```js
225+
let set1 = new Set([1, 2, 3])
226+
let set2 = new Set([4, 3, 2])
227+
228+
let intersect = new Set([...set1].filter(value => set2.has(value)))
229+
let union = new Set([...set1, ...set2])
230+
let difference = new Set([...set1].filter(value => !set2.has(value)))
231+
232+
console.log(intersect) // Set {2, 3}
233+
console.log(union) // Set {1, 2, 3, 4}
234+
console.log(difference) // Set {1}
235+
```
236+
69237
### 25. WeakMap 和 Map 的区别?
70238

71239
https://muyiy.cn/question/js/4.html
72240

73-
###
241+
* `WeakMap` 结构与 `Map` 结构基本类似,唯一的区别是它只接受**对象**作为键名( `null` 除外),不接受其他类型的值作为键名,而且**键名**所指向的对象,不计入垃圾回收机制。
242+
* `WeakMap` 最大的好处是可以避免内存泄漏。一个仅被 `WeakMap` 作为 `key` 而引用的对象,会被垃圾回收器回收掉。
243+
`WeakMap` 拥有和 `Map` 类似的 `set(key, value)``get(key)``has(key)``delete(key) ``clear()` 方法, 没有任何与迭代有关的属性和方法。
244+
245+
### 26. WeakSet 和 WeakMap 的区别?
74246

75247
###
76248

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.