
高级JavaScript
文章平均质量分 76
jmin_coming
保持一种空杯心态去承载事物!
展开
-
JavaScript执行上下文,执行上下文栈
背景:在面试中经常会遇到函数和变量提升,作用域等问题,如果想深入理解其原理,那么首先要弄清楚函数执行上下文和执行上下文栈这两个概念。再次之前先介绍下栈的数据结构:总结起来一句话:新的数据从栈顶压入,弹出数据也是从栈顶进行弹出,也就是我们所说的弹夹原理。1.执行上下文(Excution Context)执行上下文可以理解为当前代码的执行环境,它会形成一个作用域。JavaS原创 2017-10-06 10:29:13 · 790 阅读 · 0 评论 -
javascript线程,任务队列和事件循环
1.为什么说JavaScript是单线程的?浏览器渲染页面过程中涉及到的几个线程有:JavaScript执行线程,负责执行js代码,UI线程,负责UI展示,JavaScript事件循环线程,管理JavaScript事件,其中JavaScript执行线程和UI线程是互斥的.如果说JavaScript是多线程的话,那么多个JavaScript执行线程在操作同一个dom的时候,比如分别把原创 2017-10-06 08:54:30 · 655 阅读 · 0 评论 -
JavaScript作用域和变量提升
1.变量作用域作用域:就是变量声明的区域,也是变量和函数的可访问范围。在全局声明的变量为全局可见可访问的就是全局变量,如果在函数内部声明的变量只能在函数内部可访问,可称为局部变量。几个注意点:1.JavaScript中没有块级作用域(在ES5和ES6之前),只有函数作用域和全局作用域。for循环内部定义的变量是函数级别的作用域。2.变量没有在函数内声明或者声明的时候没有带v原创 2017-10-06 13:55:35 · 338 阅读 · 0 评论 -
服务器推送数据之Comet
概念:Comet指的是一种更高级的ajax技术(称为‘服务器推送’)。ajax是一种从页面向服务器请求数据的技术,而Comet则是一种服务器向叶面推送数据的技术。Comet能够让信息近乎实时地传递到页面,非常适合处理体育比赛的分数和股票报价。实现Comet的方式有两种:长轮询和流。短轮询(传统轮询):浏览器定时向服务器发送请求,看看有没有更新的数据。如下图:长轮询:长轮询把原创 2017-10-12 20:19:34 · 685 阅读 · 0 评论 -
改变this指向的三种常用方法
JavaScript中this的是一个值得深入的话题,下面总结了改变this指向的3种常用方法。首先弄清楚函数这个概念:函数本身就是一种特殊类型,要时刻明白一点,函数也可以认为是一种变量。1.通过对象的方法来定义一个函数(谁绑定了我,我就指向谁)通俗的话来说,就是如果这个函数是某个对象的方法(key),那么函数中的this就指向这个对象。 var a = function(obj)原创 2017-11-01 15:39:21 · 12315 阅读 · 0 评论 -
服务器发送事件SSE和web sockets实时通信
1.服务器发送事件SSE(服务器发送事件)是围绕只读Comet交互推出的API或者模式。SSE用于创建到服务器的单向连接,服务器通过这个连接可以发送任意数量的数据。服务器响应的MIME类型必须是text/event-stream,而且是浏览器中的JavaScript API能解析格式输出。SSE支持短轮询、长轮询和HTTP流,而且能在断开连接时候自动确定何时重新连接。那么,此时的C原创 2017-10-12 21:25:05 · 1474 阅读 · 0 评论