From 0754950882a4ca957e578d11755890a4053adf58 Mon Sep 17 00:00:00 2001 From: ZiuChen <457353192@qq.com> Date: Sat, 18 Feb 2023 23:03:12 +0800 Subject: [PATCH] docs: article update --- .../assets/Object.prototype.toString.png | Bin 0 -> 120019 bytes docs/article/assets/vm-demo.png | Bin 0 -> 14173 bytes docs/article/【字节跳动】前端面试题总结.md | 137 ++++++ docs/article/【快手】深入理解前端面试题.md | 447 ++++++++++++++++++ docs/article/【用友金融】前端面试题总结.md | 257 ++++++++++ ...浅析defineProperty与Proxy实现的双向绑定.md | 64 +++ docs/article/深入JavaScript数据类型.md | 159 +++++++ 7 files changed, 1064 insertions(+) create mode 100644 docs/article/assets/Object.prototype.toString.png create mode 100644 docs/article/assets/vm-demo.png create mode 100644 docs/article/【字节跳动】前端面试题总结.md create mode 100644 docs/article/【快手】深入理解前端面试题.md create mode 100644 docs/article/【用友金融】前端面试题总结.md create mode 100644 docs/article/浅析defineProperty与Proxy实现的双向绑定.md create mode 100644 docs/article/深入JavaScript数据类型.md diff --git a/docs/article/assets/Object.prototype.toString.png b/docs/article/assets/Object.prototype.toString.png new file mode 100644 index 0000000000000000000000000000000000000000..aed340f0b8c06e1d82c4735dedf4ba636444da87 GIT binary patch literal 120019 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

VgQHz}+y~p{(HnDT?l*B(WVOc_E4Ei{ zlu3`)3(!7FuAv=rtzEw_+5I?guBW%*5pE(DN!EN|j+_$ao4XC49xoW}i#4YZ0FbVa z0t6M{Y7KpbiFN(X=2)Sp(~W?M3On8*8p&Y}#C$WAxLoa9OlZ$OlrkoWw83sLssV>v-2zYS6=W62a! z)Z~+)iMrFDZ%y(Z?I-u={9Vpnqx9iTc=M*2!)`r;B1Ek1pC8Z* z_GEyIJA{+Wcv3beMy!R#f@Hf(?~Qmvd#qt!RZKWLwb=u2+{;bF$_a_81N+{~9F| zSsAP}eo&VS61WlJ&t0$Ac9&iZ+?iK~-MlaM$Kvb#hO19hZl+RpS;bpg2-f0=hA@l5 z(4oO@3V}{elsPhNbUWb10j%Qg)Q}bFCRARRP_JU7`)Oq5SyXT#4u2 z({-A=oLsYzn=488XS10A&%dI4q#>IjQ)|(BW#YbZ(%Nrol+OXo<2}PggiowLFjQ%) z?rv=*zUx0z-VnYVCJ~U|@rG~NAf3AReux;)Y{Xe8-?#GYD&Hr3QU%R4^sxF_l8HR( zO8&@9;`ZiE=$LsN`fX}MudWQw~Y8kQr@X*2Z}L&th0z|C|vGX zVseZ>=tG`i(}x@txN=0717qQR-TR*~yD*d1?sBhXf(rRd*Gux+aJzW4--17&_q)nr zq;%e30lDoW7A*=illZ+Ar@4S6n_ivHXOlIK7)WGvn20E(pSY>n!zpjDEE2D2`Nt1( zHop|(KRRj&v}jrbl9-vt*FFqc5_X*i3 zmbjaWt^iv?kk_;N29d)$a`zqOcWGo7RcPFNW&0F%9PO<<0qp!r#LCG8A;(#@;GOF;T%ur*NmyLNG|jsG};{ zkWFi`>lWv$?^CH@tmU=5wUCWh1)}&d@w?{%bWmnSAABNHq1$O{KTJLt-@7q-s>VAw zj|zWB7qUc>6GUUU=z!o&V%*^zK;ld|IVV zDXb17;gO7)3!tQjHy9hD6w=9&Tz+_EzIgp1_n-+-8Vsg^4=bj}`zV)b-x>Eh5i#NxrpAvy3=dUiW&*ykH8Ruaa^ zqKJS}(!8JhmFzTlx#_DNyYn+0j??0cYQTa-_su3@ z`G2N4=Gy+*@n|7f{*6jejKlRy7o~T^-oq7jf^&O`~z9WyUlv_*c!Y-yzodKSgIK?Z5 zQ$iDU>Izz=?M7GQR3T#VBglL~++NK6HPxi|?v)5DnOn)JFZk z(_gH_)uXkDEF8nqFAGuqin)~sdD~H85&z)U!rWF8IvlNVR=!nt*=Rjp-+JDkjo%V!6bZb=N&in1)g+ukO0wGofN2lN-#2u z#wn>F^45mgZoI#ody~=LEs*cW(?@e(I|c3BQP4O(Tq)JZ8IgYFwS2kloGsE!Pupx>`SrbLk<~;XclN}&!t7Ts@p_V~7Oz@Dg@08TOpfRlbHI3O>D!lRF(4ec;o#6=K2 z(7hd^_^OWljSK>$W%Yg~Qb@5kF?BCz?A3qedQI1i{4h7AP#w+o?IZg!-1p2H&#ZZh zJJe#$QdMOz$#-!o0;&M21L$nZaw-|y3H4>9#MDZ<8k8rohnajo?IOc zB;ol>+@ur>4FVA&w8u=)$}?-xQ}2!0 zYXKX9cP9V9Z{N=8wvsLIS#(8y<_$11x>rjCk25IMS}C<6?7*d+ym}X|c4?HtTP^r$ ziUdb-P-^};;5Ut)ccmxM-aU=r0e7FUQ8qR2H@|LpLGQ~Oc-_fP?L0tjS;-8^%GL4c z-7xFvNn(J%l6|1Q#$JMe!^E0RK<<9ZFiQbUUCiz`luZ=lh~H4&OY7jkVNifZ3Vc8{gVgcmduh zBNmX(du@}=v0nr3Uj))$VZ9u{Z A5Xp7udq%Oa#k<2t)f;coof*sy6IWQyOTerZ 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 R<$8kp$;+z9luMfg|1VrKzJCA! literal 0 HcmV?d00001 diff --git a/docs/article/assets/vm-demo.png b/docs/article/assets/vm-demo.png new file mode 100644 index 0000000000000000000000000000000000000000..bab33e33e6c456ecb5979a13cc0162886748b00d GIT binary patch literal 14173 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 { + Promise.resolve() + .then(() => { + console.log(1) + }) + .then(() => { + console.log(2) + }) + }) + .then(() => { + console.log(3) + }) +``` + +``` +1 3 2 +``` + +### 代码输出结果4 + +```js +const obj = { 3: '3', 2: 2, 1: '1', name: 'name', age: 'age' } +console.log(Object.keys(obj)) +``` + +``` +['1', '2', '3', 'name', 'age'] +``` + +### 代码输出结果5 + +```js +let myArray = {} +myArray['0'] = 'a' +myArray['1'] = 'b' +myArray.length = 2 +console.log(...myArray) +``` + +``` +``` + +### 代码输出结果6 + +```js +console.log([1, 2, 3, 4, 5].splice(1, 2, 3, 4, 5)) +console.log([1, 2, 3, 4, 5].slice(1, 2, 3, 4, 5)) +``` + +``` +[2, 3] +[2] +``` + +### 代码输出结果7 + +```js +console.log([].constructor === Array) +console.log(typeof [] === 'array') +console.log(typeof null === 'object') +console.log('' instanceof Object) +``` + +``` +true +false +true +false +``` + +## 问答题 + +### HTTP缓存的请求头与响应头有哪些 + +- 强制缓存 + - 响应头: Expires 与 Cache-Control + - Expires 绝对时间 + - Cache-Control 相对时间 +- 协商缓存 + - 响应头: Etag 请求头: If-Non-Match + - 响应头: Last-Modified 请求头: If-Modified-Since + +### 宏任务与微任务有哪些区别?简述他们的应用场景 + +宏任务与微任务优先级不同 + +- 先执行同步代码,后执行异步代码 +- 主线程代码执行完毕后,检查微任务队列是否为空,非空则优先执行微任务 +- 每次执行宏任务之前,都会检查微任务队列是否为空,非空则优先执行微任务 + +常见的宏任务与微任务 + +- 宏任务 `script` `setTimeout` `setInterval` `postMessage` `MessageChannel` `setImmediate (NodeJS)` +- 微任务 `Promise.then` `Object.observe` `MutationObserver` `process.nextTick (NodeJS)` + +## 算法 + +中文数字转为阿拉伯数字 + + +给定一个字符串,返回该字符串的所有组合 + +```js +输入 abc +输出 ['abc', 'acb', 'bac', 'bca', 'cab', 'cba'] +``` + +回溯算法 \ No newline at end of file diff --git a/docs/article/【快手】深入理解前端面试题.md b/docs/article/【快手】深入理解前端面试题.md new file mode 100644 index 00000000..15d275d4 --- /dev/null +++ b/docs/article/【快手】深入理解前端面试题.md @@ -0,0 +1,447 @@ +# 【快手】深入理解前端面试题 + +## 快手一面 + +### Vue生命周期 + +`beforeCreate created beforeMount mounted` + +`beforeUpdate updated` + +`beforeDestory destoryed` + +Vue3移除了`beforeCreate` `created`两个声明周期钩子,这是因为setup发生在开始创建组件之前,在`beforeCreate`和`created`之前执行 + +可以在setup中使用的生命周期函数:`onMounted` `onUpdated` `onUnmounted` `onBeforeUpdate`这几个, + +![Vue 生命周期](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/a299bd2229fb45d68a1cdd8731c94449~tplv-k3u1fbpfcp-zoom-1.image) + +### 网络请求一般在什么时候发起,为什么 + +越早越好,一般是放在`created`或`onMounted`或者`setup`中 + +- `created`(vue2) 此时组件内的基本数据已经创建好,组件的模板结构尚未生成 +- `mounted`(vue2) `onMounted`(vue3) 组件挂载到DOM树上,可以获取到DOM +- `setup`(vue3) 时机要早于`beforeCreated`和`created` 所以在setup中发起网络请求也可以 + +### setup的执行时机相当于哪个生命周期 + +`setup`的执行要早于`beforeCreated`和`created`,可以认为相当于这两个生命周期 + +### Vue2和Vue3的响应式原理 + +#### Vue2响应式原理 + +全部使用`Object.defineProperty()`中的set与get函数 + +#### Vue3响应式原理 + +`ref`使用的是`Object.defineProperty()`,而`reactive`使用的是`Proxy` + +`Proxy`可以直接深度代理一个对象,通过设置handler中的捕获器可以对对象创建一个代理,将各种行为监听并且同步到对象本身上 + +```js +const obj = { + name: 'Ziu', + age: 18 +} +const proxy = new Proxy(obj, { + set: function (target, key, newVal) { + console.log(`监听: ${key} 设置 ${newVal}`) + target[key] = newVal + }, + get: function (target, key) { + console.log(`监听: ${key} 获取`) + return target[key] + } +}) +``` + +### Proxy相比于defineProperty有何优势 + +[defineProperty 和 Proxy区别](https://segmentfault.com/a/1190000041084082) + +1. **监听数据的角度** + + 1. `defineproperty`只能监听某个属性而不能监听整个对象。 + 2. `proxy`不用设置具体属性,直接监听整个对象。 + 3. `defineproperty`监听需要知道是哪个对象的哪个属性,而`proxy`只需要知道哪个对象就可以了。也就是会省去`for in`循环提高了效率。 + +2. **监听对原对象的影响** + + 1. 因为`defineproperty`是通过在原对象身上新增或修改属性增加描述符的方式实现的监听效果,一定会修改原数据。 + 2. 而`proxy`只是原对象的代理,`proxy`会返回一个代理对象不会在原对象上进行改动,对原数据无污染。 + +3. **实现对数组的监听** + + 1. 因为数组 `length` 的特殊性 `(length 的描述符configurable 和 enumerable 为 false,并且妄图修改 configurable 为 True 的话 js 会直接报错:VM305:1 Uncaught TypeError: Cannot redefine property: length)` + 2. `defineproperty`无法监听数组长度变化, `Vue`只能通过重写数组方法的方式变现达成监听的效果,光重写数组方法还是不能解决修改数组下标时监听的问题,只能再使用自定义的`$set`的方式 + 3. 而`proxy`因为自身特性,是创建新的代理对象而不是在原数据身上监听属性,对代理对象进行操作时,所有的操作都会被捕捉,包括数组的方法和`length`操作,再不需要重写数组方法和自定义`set`函数了。(代码示例在下方) + + **4. 监听的范围** + + 1. `defineproperty`只能监听到`value`的 `get set` 变化。 + 2. `proxy`可以监听除 `[[getOwnPropertyNames]]` 以外所有`JS`的对象操作。监听的范围更大更全面。 + +#### Proxy优势 + +- Proxy可以直接监听整个对象而非属性。 +- Proxy可以直接监听数组的变化。 +- Proxy有13中拦截方法,如`ownKeys、deleteProperty、has` 等是 `Object.defineProperty` 不具备的。 +- Proxy返回的是一个新对象,我们可以只操作新的对象达到目的,而`Object.defineProperty`只能遍历对象属性直接修改; +- Proxy做为新标准将受到浏览器产商重点持续的性能优化,也就是传说中的新标准的性能红利。 + +#### Object.defineProperty优势 + +兼容性好,支持 IE9,而 Proxy 的存在浏览器兼容性问题,而且无法用 polyfill 磨平。 + +#### Object.defineProperty劣势 + +- `Object.defineProperty` 只能劫持对象的属性,因此我们需要对每个对象的每个属性进行遍历。 +- `Object.defineProperty`不能监听数组。是通过重写数据的那7个可以改变数据的方法来对数组进行监听的。 +- `Object.defineProperty` 也不能对 `es6` 新产生的 `Map`,`Set` 这些数据结构做出监听。 +- `Object.defineProperty`也不能监听新增和删除操作,通过 `Vue.set()`和 `Vue.delete`来实现响应式的。 + +### Vue3数据双向绑定原理 + +### ref与reactive区别与适用场景 + +- ref接受的数据类型:基本类型(string number bigint boolean undefined symbol null),引用类型 + - 把参数加工成一个响应式对象,全称为reference对象(简称为ref对象) + - 如果参数是基本类型,那么形成响应式依赖于`Object.defineProperty()`的get()和set() + - 如果ref的参数是引用类型,底层ref会借助reactive的Proxy生成代理对象,从外部依然是通过`.value`获取 +- reactive只接受引用类型(Object Array) + - 它的响应式是更深层次的,底层是将数据包装成一个Proxy + - 参数必须是对象或者数组,如果要让对象的某个元素实现响应式时比较麻烦。需要使用toRefs + - 必须只使用那些不会改变引用地址的操作,否则会丢失响应性,如解构、重新赋值 + +```js +const obj1 = ref({ name: 'Ziu', age: 18 }) +console.log(obj1) // RefImpl +console.log(obj1.value) // Proxy + +const obj2 = reactive({ + name: 'Kobe', + age: 19 +}) +console.log(obj2) // Proxy +``` + +### Vue3功能上相比于Vue2有哪些优点 + +- Composition API + - 生命周期钩子 + - `ref() reactive()` + - hook复用代码 +- 不再需要根标签 (Fragments) +- 性能提升 diff算法 +- Proxy与defineProperty + +[Vue3 对比 Vue2.x 差异性、注意点、整体梳理,与React hook比又如何?](https://juejin.cn/post/6892295955844956167) + +### Vue组件传参方法 + +- prop & emit +- provide & inject +- 子组件defineExpose 父组件ref获取 + +### Vuex异步操作如何同时修改多个state + +### ES6特性了解哪些 + +- let & const + - 独立作用域 +- 箭头函数 + - 无this 无arguments对象 +- Promise + - 类方法、实例方法 +- async await + - 异步函数 生成器语法糖 + +### let & const的特性 + +不存在变量提升 暂时性死区 + +> ES6 明确规定,如果区块中存在`let`和`const`命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错。 + +```js +var tmp = 123; + +if (true) { + tmp = 'abc'; + let tmp; +} +console.log('tmp =', tmp); +``` + +### Promise介绍一下 + +- 三种状态 `pending fulfilled rejected` +- 类方法 `.resolve .reject .all .race .any` +- 实例方法 `.then .catch .finally .allSettled` + - `.then`方法两个入参 一个是上一个Promise对象resolved的回调 另一个是rejected的回调,返回一个新的Promise对象 + - `.then`传入的回调函数会被加入微任务队列 + - `.catch`本质上是只有错误处理函数的`.then` + +### Promise.all .race .any功能及区别 + +传入的都是一个可迭代对象(iterable),迭代器,类似Array + +- Promise.all() 所有都resolved 将结果按顺序放入数组中返回 如果某个rejected则直接rejected,原因为第一个rejected的原因 +- Promise.race() 一旦迭代器中的某个promise解决或拒绝,返回的 promise就会解决或拒绝 +- Promise.any() any方法会等到一个fulfilled状态,才会决定新的Promise状态 如果所有Promise都是reject的,那么也会等到所有Promise都变成rejected状态 + +### Promise看代码写结果 + +```js +function testPromise() { + return new Promise((resolve, reject) => { + console.log('1'); + resolve(2); + reject(3); + console.log('4'); + }).then(res => { + console.log('res = ', res); + }, err => { + console.log('err =', err); + }); +} + +testPromise(); +``` + +输出结果:`1 4 res = 2` + +执行`resolve`之后,当前Promise的状态变为`fulfilled`不再改变,即使后面继续调用了`reject`,后续代码继续执行输出`'4'`,随后执行微任务中的`.then`,输出`res = 2` + +### 手写Promise.all() + +```js + function selfPromiseAll(iterable) { + return new Promise((resolve, reject) => { + const promises = Array.from(iterable) // 将可迭代对象转为数组 + const result = [] // 保存结果 + let count = 0 // 记录是否所有promise都执行完毕 + // 并发执行每一个promise + for (let i = 0; i < promises.length; i++) { + Promise.resolve(promises[i]) + .then((res) => { + result[i] = res // 将结果按顺序存入result + count++ + // 保证每一个Promise都执行完毕后再resolve + if (count === promises.length) { + resolve(result) + } + }) + .catch((err) => reject(err)) // 只要有reject 外部Promise直接reject + } + }) + } +``` + +### Cookie localStorage SessionStorage区别及使用场景 + +| | cookie | localStorage | sessionStorage | +| --- | --- | --- | --- | +| 大小 | 4Kb | 5MB | 5MB | +| 兼容 | H4/H5 | H5 | H5 | +| 访问 | 任何窗口 | 任何窗口 | 同一窗口 | +| 有效期 | 手动设置 | 无 | 窗口关闭 | +| 存储位置 | 浏览器和服务器 | 浏览器 | 浏览器 | +| 与请求一起发送 | 是 | 否 | 否 | +| 语法 | 复杂 | 简单 | 简单 | + +- Cookie是由`?key1=value1;key2=value2`组成的,可以通过`encodeURIComponent()`来保证它不包含任何逗号、分号或空格(cookie值中禁止使用这些值). +- Cookie一般的字段有`path domain max-age expires secure` +- 不同的host之间的localStorage、sessionStorage对象是隔离的 + +### localStorage常用方法 + +```js +localStorage.setItem('key', value) +localStorage.getItem('key') +localStorage.removeItem('key') +localStorage.clear() +``` + +### 跨域解决方法 + +- JSONP +- CORS +- 代理服务器 + +#### JSONP + +根据同源策略的限制,在**端口,域名,协议**这三者**一个或者多个不同的情况下**,就会出现跨域限制,请求发送到了服务器并且服务器也响应了数据,但是浏览器不会为你展示出来。 + +但是,` + +``` + +` +``` + +### Proxy与defineProperty实现数据劫持 + +[深入理解Proxy与Reflect](https://juejin.cn/post/7179634726309724219) + +### 算法: 两数之和-修改版 + +从数组中找到两数之和为目标值的数字对数 不允许重复使用数字 + +- `[1, 2, 3, 4, 4], 5` 结果为 `2` +- `[1, 1, 2, 3, 4, 4], 5` 结果为 `3` + +```js +/** + * 从数组中找到两数之和为目标值的数字对数 不允许重复使用数字 + * @param {number[]} nums 数组 + * @param {number} target 目标值 + * @returns {number} 次数 + */ + +function twoSum(nums, target) { + // 边界情况 + if (nums.length < 2) return 0 + + let count = 0 + const map = new Map() + + for (let i = 0; i < nums.length; i++) { + const num = nums[i] + const diff = target - num + const value = map.get(diff) // undefined | number + + // 如果找到了与diff相等的num + if (value !== undefined && value > 0) { + count++ + map.set(diff, value - 1) // 剩余数字个数-1 + } else { + // 未找到 则将num设为键 值为出现次数 + const count = map.get(num) === undefined ? 1 : map.get(num) + 1 + map.set(num, count) + } + } + + return count +} + +console.log(twoSum([1, 2, 3, 4, 4], 5)) // 2 +console.log(twoSum([1, 1, 2, 3, 4, 4], 5)) // 3 +``` diff --git a/docs/article/【用友金融】前端面试题总结.md b/docs/article/【用友金融】前端面试题总结.md new file mode 100644 index 00000000..3415969c --- /dev/null +++ b/docs/article/【用友金融】前端面试题总结.md @@ -0,0 +1,257 @@ +# 【用友金融】前端面试题总结 + +## 回流与重绘 + +下列关于回流和重绘的说法错误的是 + +- 回流的性能开销大于重绘的性能开销 +- 当页面结构、尺寸等改变时会发生回流 +- 回流一定会引起重绘,重绘也一定会引起回流(x) +- 当页面结构不改变只是样式发生改变时会发生重绘,例如背景颜色改变时会发生重绘 + + +- `display: none` 指的是元素完全不陈列出来,不占据空间,涉及到了DOM结构,故产生reflow与repaint +- `visibility: hidden` 指的是元素不可见但存在,保留空间,不影响结构,故只产生repaint,但不可触发绑定事件 +- `opacity: 0` 指的是元素不可见但存在,保留空间,不影响结构,并且,如果该元素已经绑定一些事件,如click事件,那么点击该区域,也能触发点击事件的 + +## CSS属性 + +下列选项中哪个描述对于visibility: hidden;与display: none;是正确的 + +- visibility属性不可继承 +- visibility: hidden; 不占据页面空间 +- display: none; 不占据页面空间(√) +- 都无法通过DOM交互 + +## 函数执行结果 + +### 题目1 + +```js +(function () { + var a = (b = 5); +})(); + +console.log(b); +console.log(a); +``` + +结果为: + +``` +5 +Error +``` + +### 题目2 + +```js +console.log(1 + '2') +console.log(1 - '2') +``` + +结果为: + +```js +12 +-1 +``` + +### 题目3 + +```js +var a = 1 + +setTimeout(function () { + a = 2 + console.log(a) +}, 0) + +var a +console.log(a) + +a = 3 +console.log(a) +``` + +结果为: + +``` +1 +3 +2 +``` + +### 题目4 + +```js +function f() { + return f +} + +console.log(new f() instanceof f) +``` + +结果为: + +``` +false +``` + +### 题目5 + +```js +var foo = { + bar: function () { + return this.baz + }, + baz: 1 +} + +console.log(typeof (f = foo.bar)()) +``` + +结果为: + +``` +undefined +``` + +### 题目6 + +```js +var a = (b = 1, c = 2) +console.log(a, b, c) +``` + +结果为: + +``` +2 1 2 +``` + +### 题目7 + +```js +var company = { + address: 'beijing' +} + +var jjworld = Object.create(company) +delete jjworld.address +console.log(jjworld.address) +``` + +结果为: + +``` +beijing +``` + +### 题目8 + +```js +function side(arr) { + arr[0] = arr[2] +} + +function a(a, b, c = 3) { + c = 10 + side(arguments) + return a + b + c +} + +console.log(a(1, 1, 1)) +``` + +结果为: + +``` +12 +``` + +## CSS权重的优先级 + +内联样式 > ID选择器 > 类选择器 > 标签选择器 > 通配符 + +## HTTP状态码 + +越多越好 + +- 400 临时重定向 +- 500 服务器内部错误 +- 404 服务器无法找到对应资源 +- 200 请求正常处理 + +## BFC(块级格式上下文) + +下列选项对产生BFC描述错误的是: + +- overflow为visible(x) +- position为absolute +- display为table-cell +- float属性不为none + +## 元素浮动 + +设置元素浮动后,元素的display值哪个是正确的? + +- inline-block +- float +- inline +- block(√) + +## HTTP请求方法 + +下面哪个选项不是HTTP的请求方法 + +- HEAD +- PUT +- OPTIONS +- PUSH(x) + +HTTP请求方法有: + +`GET POST DELETE PUT OPTIONS` +`CONNECT HEAD PATCH TRACE` + +## 跨域问题 + +通常有哪些方法解决跨域问题? + +- 利用JSONP +- 反向代理 +- 服务器配置CORS + +## 了解Webpack的哪些配置项 + +- `resolve.alias` 为路径设置别名 +- `resolve.extensionAlias` 后缀省略时 按此顺序指定的后缀名解析文件 +- `module.rules` 包含`test` `loader` `option` 正则匹配后缀名 使用指定的loader解析文件 + +## 判断变量类型 + +直接使用`typeof`无法判断引用类型变量的类型 + +```js +console.log(typeof []) // object +console.log(typeof {}) // object +console.log(typeof null) // object +``` + +## JS浮点数相加精度问题 + +## 简单讲讲Vue Router原理 + +## ES6熟悉吗 + +[ES6教程](https://es6.ruanyifeng.com/) + +- `let` `const` +- 解构赋值 扩展运算符 可选链 +- `Promise` `Async` +- `Class` `Set` `Map` `Symbol` `Proxy` + +## CSS如何实现水平居中与垂直居中 + +参见[CSS学习笔记](../note/CSS.md) \ No newline at end of file diff --git a/docs/article/浅析defineProperty与Proxy实现的双向绑定.md b/docs/article/浅析defineProperty与Proxy实现的双向绑定.md new file mode 100644 index 00000000..cdf0b0ab --- /dev/null +++ b/docs/article/浅析defineProperty与Proxy实现的双向绑定.md @@ -0,0 +1,64 @@ +# 浅析defineProperty与Proxy实现的双向绑定 + +> 文章内容总结自Vue官网 [深入响应式原理](https://cn.vuejs.org/v2/guide/reactivity.html#%E5%A6%82%E4%BD%95%E8%BF%BD%E8%B8%AA%E5%8F%98%E5%8C%96) + +## 🔰 Vue2的响应式原理 + +![image.png](https://v2.cn.vuejs.org/images/data.png) + +> 当你把一个普通的 JavaScript 对象传入 Vue 实例作为 `data` 选项,Vue 将遍历此对象所有的 property,并使用 [`Object.defineProperty`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty) 把这些 property 全部转为 [getter/setter](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Working_with_Objects#%E5%AE%9A%E4%B9%89_getters_%E4%B8%8E_setters)。 +> +> 每个组件实例都对应一个 **watcher** 实例,它会在组件渲染的过程中把“接触”过的数据 property 记录为依赖。之后当依赖项的 setter 触发时,会通知 watcher,从而使它关联的组件重新渲染。 + +Vue2的响应式原理,利用的是 `Object.defineProperty()` 的 `setter` 属性: + +`defineProperty()` 方法用于**精确**定义一个对象的属性,能够指定属性的各种特征,其中的 `set` 属性能够为对象指定一个 `setter` 函数,每次该属性的值发生修改,就会调用此函数。 + +> 更多可以配置的属性请参看:[什么是对象的数据属性描述符?存储属性描述符?](https://juejin.cn/post/7088335075061792782) + +这也是Vue2实现响应式数据、数据双向绑定的原理。 + +可以使用此方法实现一个简单的数据双向绑定的Demo: + +![image.png](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/f241135dbeb04e829fe6897c2e418aa2~tplv-k3u1fbpfcp-watermark.image?) + +* 输入框内的内容改变,`.vBox` 展示的文本会随之改变。 +* 点击按钮修改 `vm.text`,输入框内的值和 `.vBox` 的文本都会发生改变。 + +```html + + + +

+ + +``` + +通过 `defineProperty` 实现的响应式,**不能检测**数组和对象的变化: + +**对于对象:** + +Vue 无法检测 property 的添加或移除。 + +var vm = new Vue({ data:{ a:1 } }) // `vm.a` 是响应式的 vm.b = 2 // `vm.b` 是非响应式的 + +**对于数组:** + +1. 当你利用索引直接设置一个数组项时,例如:`vm.items[indexOfItem] = newValue` +2. 当你修改数组的长度时,例如:`vm.items.length = newLength` + +## 🔰 Vue3的响应式原理 diff --git a/docs/article/深入JavaScript数据类型.md b/docs/article/深入JavaScript数据类型.md new file mode 100644 index 00000000..2e4809d9 --- /dev/null +++ b/docs/article/深入JavaScript数据类型.md @@ -0,0 +1,159 @@ +## 深入JavaScript数据类型 + +JavaScript包含以下几种数据类型: + +- Number 数字 +- String 字符串 +- Boolean 布尔值 +- Symbol 符号 (ES6新增) +- Object 对象 + - Function 函数 + - Array 数组 + - Date 日期 + - RegExp 正则表达式 + - ... +- null 空 +- undefined 未定义 + +从语言底层值的可变与不可变,可以将JS中的数据分为两种:不可变值(原始类型)和可变值(引用类型) + +除了Object及继承自Object的特殊对象,其他的类型都为**原始类型**。 + +## typeof运算符 + +除了null,所有**原始类型**都可以通过`typeof`运算符得到不同的结果 + +而null与object通过`typeof`运算符得到的结果都为`'object'` + +```javascript +// 除了 null 其他原始类型的变量都可以通过 typeof 得到其类型 +// 而 null 与 object 通过 typeof 运算得到的都是 'object' +const targets = [18, 'Ziu', true, Symbol(''), {}, null, undefined] + +for (const t of targets) { + console.log(typeof t) // number string boolean symbol object object undefined +} +``` + +### `typeof null === 'object'` + +这里援引MDN的解释: + +> 在 JavaScript 最初的实现中,JavaScript 中的值是由一个表示类型的标签和实际数据值表示的。对象的类型标签是 0。 +> +> 由于 null 代表的是空指针(大多数平台下值为 0x00),因此,null 的类型标签是 0,typeof null 也因此返回 "object"。 + +### 关于new操作符 + +所有使用 new 操作符调用的构造函数,都将返回非基本类型(object 或 function) + +- 大多数返回的是一个对象,即 `object` +- 而构造函数Function返回的是 `function` + +```javascript +// 针对普通构造函数 +const str = new String('Ziu') +const num = new Number(100) + +console.log(typeof str) // 'object' +console.log(typeof num) // 'object' + +// 针对 Function 构造函数 +const fun = new Function() +console.log(typeof fun) // 'function' +``` + +### 字符串原始值和字符串对象 + +typeof 操作符区分 `String` 对象和原始字符串值: + +```javascript +const s1 = '' +const s2 = new String('') +const s3 = String('') + +console.log(s1 instanceof String) // false +console.log(s2 instanceof String) // true +console.log(s3 instanceof String) // false +``` + +通过new操作符创建的是一个对象,它将被添加到原型链上(详见new一个对象时发生了什么) + +而直接调用 String 函数,返回的是一个字符串原始值,本质上 `s3` 和 `s1` 是相同的 + +而`s1`变量自创建之初,就是原始类型,没有挂载到原型链上,自然也就无法通过`instanceof`检查一个对象 + +而之所以能够在`s1`上调用字符串的方法,是因为**包装类型**(见下文) + +> instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。 +> +> 在本例中,instanceof用于检查s1变量的原型链上,是否包含构造函数String的显式原型(String.prototype),即:s1是否由String创建 + +## 包装类型 + +除了null和undefined,所有**原始类型**都有其相应的**对象包装类型**,例如`18`的对象包装类型是`Number`,而`'Ziu'`的对象包装类是`String` + +这为处理原始值提供可用的方法,例如,`Number`对象提供了`toFixed()`这样的方法。 + +当我们在原始值上访问属性时,JavaScript会**自动将值包装到相应的包装对象中**,并访问对象上的属性: + +```javascript +console.log((18.8).toFixed()) // '19' +console.log('Ziu'.toUpperCase()) // 'ZIU' +``` + +## 使用toString检查对象类型 + +由Object派生的每个特殊对象类型都有 `toString` 方法,而且他们都被不同程度的改写: + +```javascript +// 注意,不应当在null或undefined上调用任何方法,这将抛出错误,因为他们没有对应任何包装类型 +const targets = [18, 'Ziu', true, Symbol(''), {}, new Date()] + +for (const t of targets) { + console.log(t.toString()) // '18' 'Ziu' 'true' 'Symbol()' '[object Object]' Sat Feb 18 2023 20:49:31 GMT+0800 (GMT+08:00) +} +``` + +这个 `toString` 方法定义在 Object.prototype 上,被其他特殊对象类型所继承。 + +- 如果我们直接调用 `Object.prototype.toString()` 那么得到的是 `[object Object]` 因为这是在Object上调用得到的结果 +- 如果我们在各自不同的对象上调用 `toString` ,得到的是不同对象改写后的结果 + +因为Object是所有子类的父类,所以任何类型的对象都可以通过this绑定的方式,调用`Object.prototype.toString()`方法,返回该对象的类型的字符串表示 + +这也是大多数情况下判断对象类型的方法: + +```js +function classof(target) { + const res = Object.prototype.toString.call(target) // [object xxx] + return res.slice(8, -1) +} + +console.log(classof({})) // Object +``` + +### 核心原理 + +[深入Object.prototype.toString](https://juejin.cn/post/6844903477940846600) + +参考ECMA6规范文档:[Object.prototype.toString()](https://tc39.es/ecma262/multipage/fundamental-objects.html#sec-object.prototype.tostring) + +#### ES5标准下 `Object.prototype.toString` 执行原理 + +- 如果 `this` 是 `undefined` + - 返回 `[object Undefined]` +- 如果 `this` 是 `null ` + - 返回 `[object Null]` +- 令 `O` 为以 `this` 作为参数调用 `ToObject` 的结果 +- 令 `class` 为 `O` 的内部属性 `[[Class]]` 的值 +- 返回三个字符串 `"[object"` `class` 以及 `"]"` 拼接而成的字符串。 + +#### ES6标准下 `Object.prototype.toString` 执行原理 + +`Object.prototype.toString()`被调用时,会进行如下步骤: + +![Object.prototype.toString()](./assets/Object.prototype.toString.png) + +在ES6里,之前的内部属性 `[[Class]]` 不再使用,取而代之的是一系列的 internal slot +