js
文章平均质量分 75
Stepan_sj
这个作者很懒,什么都没留下…
展开
-
javascript 块级作用域的函数提升
javascript 块级作用域的函数提升 在{}里声明函数和在全局上下文中声明函数是不一样的。这里先看一个例子: { function foo(){} foo=1 } console.log(foo) 按照之前学的答应应该是1.但是并不是。 答案是function foo; 呢么是为什么呢? 再看一题: { foo=1 function foo(){} } console.log(foo) 答案是什么呢? 1. 为什么呢? 查了网上各种资料。找到一个比较具有说服性的解释。 1、在{}原创 2020-07-14 23:17:38 · 1184 阅读 · 3 评论 -
箭头函数和普通函数的区别
箭头函数和普通函数的区别箭头函数和普通函数的区别 箭头函数和普通函数的区别 1、箭头函数不能通过arguments获取形参,但是能通过rest获取形参。 2、箭头函数this指向定义箭头函数时的上下文对象,而普通函数的this指向调用者. 附上代码: ...原创 2019-07-19 20:49:02 · 212 阅读 · 0 评论 -
js运行机制:eventLoop
首先js是单线程的,意味着代码只能从上到下执行。浏览器为了模拟多线程,创建了event loop,称作js异步编程。当然浏览器内部有很多线程来辅助event loop的实现。 同步和异步 如果js代码都是同步的,从上往下执行的话,就不会有任何的交互功能了。异步使单线程js可以拥有定时器,ajax,事件等功能。 同异步执行机制 单线程的特性是代码从上往下执行,当遇到异步任务的时候会把异步任务的回调函...原创 2019-07-30 16:05:21 · 79 阅读 · 0 评论 -
菜鸟手写残缺版promise
1、简单实现promise class myPromise{ constructor(fn){ //params: resolve //为什么要bind(this) 因为调用的时候this指向window, fn(function (data){ this.value=data }.bind(this)) } then(callBack){ callBack(th...原创 2019-07-31 23:23:50 · 77 阅读 · 0 评论 -
前端面试总结(一)
1、jquery深拷贝 //extend第一个参数true表示深拷贝,如果第一个参数直接是对象,就是浅拷贝 //深拷贝 let a={a:1} let b={b:2} let c = $.extend(true,a,b) //浅拷贝 let a={a:1} let b={b:2} let c = $.extend(a,b) 2、inline-block间隙用什么方法解决? 方法一:父元素fon...原创 2019-08-01 22:58:37 · 90 阅读 · 0 评论 -
浅谈JS执行上下文,作用域以及闭包
执行上下文 首先要知道js执行到可执行语句时,就会创建一个上下文,等到这个上下文执行上下文执行完毕,就会出栈,继续执行下面的代码,也有可能进入其他的上下文。 那么创建上下文有什么用呢? 用于确认变量是否可访问,确定this指向,以及变量的赋值。 创建上下文有两个阶段: 创建阶段: 该创建属于变量声明阶段,创建变量对象AO function func(a,b){ console.log(c) c...原创 2019-08-13 00:35:36 · 161 阅读 · 0 评论 -
树结构转换
let data=[ {pid:'',name:'父节点1',id:1}, {pid:'',name:'父节点2',id:2}, {pid:1,name:'父节点1-字节点1',id:3}, {pid:1,name:'父节点1-字节点2',id:4}, {pid:2,name:'...原创 2019-10-07 16:39:23 · 284 阅读 · 0 评论