语法糖

在不改变原有的功能的前提下,优化了代码的结构,代码的运行更加的流畅,代码的书写更加的优美。妄自菲薄的下的给的定义

- 阅读全文 -

for循环我不知道的事情

for循环中,定义的东西,居然是赋值到了所出的作用域内for( var i=0 ; i<1 ; i++ ){ var a=0; } console.log(i) // 1 console.log(a) // 0 /* *不会报错,而是可以直接输出 */知道和理解完全是两回事,知道是我知道ES6之前,只有全局作用域和函数作用域,而我一直没有去理解它现在终于明白了,理解了,知道为什么ES

- 阅读全文 -

JS实现深拷贝

//深拷贝的实现方法,不支持函数 let arr=[0,1,2,{a:"a",b:"b",c:"c"}]; let arr2=clone(arr); function clone(obj){ let objType=checkType(obj); let temp; if( objType==="Array" ){ temp=[]; }else if( objType=

- 阅读全文 -

前端学习路线规划【受益】

转自B站:https://www.bilibili.com/video/BV1ZZ4y1H7rU视频中学习路线图链接地址:https://objtube.github.io/front-end-roadmap/#/看了之后感觉受益匪浅,制定小目标,找准对的方向,及时回顾复习,不要盲目随大流。

- 阅读全文 -

错题深究与分析

题目:在浏览器控制台执行以下代码,输入的结果是()答案:4400 4401 4399 4400分析:这道题做错并且一直无法正确分析,主要是思想有些固化,脑子转不过弯来。恍然大悟之后可谓简单至极。解题的关键在于return { n : n , add : add } ,只要把键名n假设为其他键名,比如a,可以减少干扰。n属性的值与add函数内的n是没有任何关系的,由于add函数调用了外部函数的变量,

- 阅读全文 -

js诡辩

{}+[] // 0[]+{} // [object Object]代码1的为0的原因是,解释器把开头检测到的{}当做了代码块出来,然后实际运行的是+[]。这种运行结果只在特定的情况下产生,运算时添加一个括号就是代码2的结果({}+[]) // [object Object] ({}+[]).length // 15

- 阅读全文 -