摘要: 这个绕来绕去的线是不是很恶心呢?那就先别管这些了,等整个逻辑我们梳理完就自然而然的会明白了~ 一、 什么是原型链? 每个对象都可以有一个原型_proto_,这个原型还可以有它自己的原型,以此类推,形成一个原型链。查找特定属性的时候,我们先去这个对象里去找,如果没有的话就去它的原型对象里面去,如果还是 阅读全文
posted @ 2020-03-18 22:48 努力~努力再努力~ 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一步一步来说说事件委托(或者有的资料叫事件代理) js中事件冒泡我们知道,子元素身上的事件会冒泡到父元素身上。 事件代理就是,本来加在子元素身上的事件,加在了其父级身上。 那就产生了问题:父级那么多子元素,怎么区分事件本应该是哪个子元素的? 答案是:event对象里记录的有“事件源”,它就是发生事件 阅读全文
posted @ 2020-03-18 22:05 努力~努力再努力~ 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 前面《变量的赋值和对象的赋值》中有用到typeof运算符去判断运算数的类型,结果如下: 1 2 3 4 5 6 7 8 alert(typeof 1); // 返回字符串"number" alert(typeof "1"); // 返回字符串"string" alert(typeof true); 阅读全文
posted @ 2020-03-18 21:59 努力~努力再努力~ 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 首先必须要说的是,this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象(这句话有些问题,后面会解释为什么会有问题,虽然网上大部分的文章都是这样说的,虽然在很多情况下那样去理解不会出什么问题,但是实际上那样理解是不准确的 阅读全文
posted @ 2020-03-18 21:54 努力~努力再努力~ 阅读(1559) 评论(0) 推荐(0) 编辑
摘要: 一句话总结: 闭包是指有权访问另一个函数作用域中的变量的函数 function Student(){ var age=22; function addAge(){ age++; alert(age); } return addAge;} var fn=Student(); fn();//弹出23 闭 阅读全文
posted @ 2020-03-18 21:34 努力~努力再努力~ 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 1.js的执行是单线程的。 2.而当它遇到了window的setTimeout和setInterval这样的异步任务,js都默默地先不执行这些回调,而是继续向下执行其他js脚本,等到所有js脚本都解析执行完了,再执行回调。 3.那么有多个回调的时候执行顺序是怎么样的呢? 浏览器是多线程的,js执行线 阅读全文
posted @ 2020-03-18 21:27 努力~努力再努力~ 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 递归: 函数中用调用函数自己,此时就是递归,递归一定要有结束条件 function f1() { console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:"); f1(); }; f1();//浏览器崩溃,因为没有结束条件——死循环 改进如下: var i=0; functi 阅读全文
posted @ 2020-03-18 21:25 努力~努力再努力~ 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 在vue的路由配置中有mode选项 最直观的区别就是在url中 hash 带了一个很丑的 # 而history是没有#的 hash模式和history模式的不同 对于vue这类渐进式前端开发框架,为了构建 SPA(单页面应用),需要引入前端路由系统,这也就是 Vue-Router 存在的意义。前端路 阅读全文
posted @ 2020-03-18 18:50 努力~努力再努力~ 阅读(428) 评论(0) 推荐(0) 编辑
摘要: js的同步和异步问题通常是指ajax的回调,如果是同步调用,程序在发出ajax调用后就会暂停,直到远程服务器产生回应后才会继续运行。而如果是异步调用,程序发出ajax调用后不会暂停,而是立即执行后面的代码,服务器返回信息后会自动触发回调函数进行处理。相比较而言,异步调用的性能最佳,程序不会出现卡顿的 阅读全文
posted @ 2020-03-18 18:43 努力~努力再努力~ 阅读(888) 评论(0) 推荐(0) 编辑