Daily-Interview-Question icon indicating copy to clipboard operation
Daily-Interview-Question copied to clipboard

我是依扬(木易杨),公众号「高级前端进阶」作者,每天搞定一道前端大厂面试题,祝大家天天进步,一年后会看到不一样的自己。

Results 160 Daily-Interview-Question issues
Sort by recently updated
recently updated
newest added

```js const value = '112' const fn = (value) => { ... } fn(value) // 输出 [1, 11, 112] ```

编程题

在ES5中,顶层对象的属性和全局变量是等价的,var 命令和 function 命令声明的全局变量,自然也是顶层对象。 ``` var a = 12; function f(){}; console.log(window.a); // 12 console.log(window.f); // f(){} ``` 但ES6规定,var 命令和 function 命令声明的全局变量,依旧是顶层对象的属性,但 let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。 ``` let aa = 1; const bb...

JS基础

```js const find = (S, T) => { if (S.length < T.length) return -1 for (let i = 0; i < S.length; i++) { if (S.slice(i, i + T.length) ===...

编程题

防抖就不说了,主要是这里提到的中文输入问题,其实看过elementui框架源码的童鞋都应该知道,elementui是通过compositionstart & compositionend做的中文输入处理: 相关代码: 这3个方法是原生的方法,这里简单介绍下,官方定义如下compositionstart 事件触发于一段文字的输入之前(类似于 keydown 事件,但是该事件仅在若干可见字符的输入之前,而这些可见字符的输入可能需要一连串的键盘操作、语音识别或者点击输入法的备选词) 简单来说就是切换中文输入法时在打拼音时(此时input内还没有填入真正的内容),会首先触发compositionstart,然后每打一个拼音字母,触发compositionupdate,最后将输入好的中文填入input中时触发compositionend。触发compositionstart时,文本框会填入 “虚拟文本”(待确认文本),同时触发input事件;在触发compositionend时,就是填入实际内容后(已确认文本),所以这里如果不想触发input事件的话就得设置一个bool变量来控制。 ![image](https://user-images.githubusercontent.com/34699694/58140376-8f5e9580-7c71-11e9-987e-5fe39fce5e90.png) 根据上图可以看到 输入到input框触发input事件 失去焦点后内容有改变触发change事件 识别到你开始使用中文输入法触发**compositionstart **事件 未输入结束但还在输入中触发**compositionupdate **事件 输入完成(也就是我们回车或者选择了对应的文字插入到输入框的时刻)触发compositionend事件。 那么问题来了 使用这几个事件能做什么? 因为input组件常常跟form表单一起出现,需要做表单验证 ![image](https://user-images.githubusercontent.com/34699694/58140402-b1581800-7c71-11e9-97b9-9c696f3a0061.png) 为了解决中文输入法输入内容时还没将中文插入到输入框就验证的问题 我们希望中文输入完成以后才验证

JS基础

// example 1 var a={}, b='123', c=123; a[b]='b'; a[c]='c'; console.log(a[b]); --------------------- // example 2 var a={}, b=Symbol('123'), c=Symbol('123'); a[b]='b'; a[c]='c'; console.log(a[b]); --------------------- // example 3 var a={}, b={key:'123'}, c={key:'456'}; a[b]='b';...

JS基础

```javascript var a = {n: 1}; var b = a; a.x = a = {n: 2}; console.log(a.x) console.log(b.x) ``` 这是连续赋值的坑 - [参考资料](https://www.zhihu.com/question/41220520)

JS基础