02 2019 档案
Angular的变更检测
摘要:Angular提供了数据绑定的功能。所谓的数据绑定,就是把组件类中的数据与页面的DOM元素关联起来,当数据发生变化时,Angular能够监测到这些变化,并对其绑定的DOM元素进行相应的更新(如何更新这是在模板中的各种情况来决定的,而且更新也只是更新变化的局部,所以重点是Angular如何准确的定位到 阅读全文
posted @ 2019-02-24 15:22 西门本不吹雪 阅读(1577) 评论(0) 推荐(0)
HTTP之跨域请求
摘要:HTTP协议本身是没有跨域请求的设置的,跨域请求的限制是浏览器为了安全考虑加上去的。 实际上,浏览器对于HTTP请求是直接发送给server 浏览器提供了2种方式来突破跨域请求的限制, 对于现在的突破跨域请求的方式,比如使用JSONP方式,它的底层原理就是使用script标签。 对于一些可控的跨域请 阅读全文
posted @ 2019-02-23 12:31 西门本不吹雪 阅读(4213) 评论(0) 推荐(1)
HTTP之长连接
摘要:HTTP协议中只有请求和响应的概念,发起请求和返回响应是通过TCP Connection来完成的。 在HTTP1.1以前,默认情况下,在发起请求得到响应之后,会关闭TCP Connection,有新的HTTP请求发起时,会重新建立TCP Connection。 我们知道,建立TCP Connecti 阅读全文
posted @ 2019-02-23 11:54 西门本不吹雪 阅读(730) 评论(0) 推荐(0)
HTTP之缓存 Cache-Control
摘要:通过在Response Header设置Cache-Control head 信息可以控制浏览器的缓存行为。 我们先来看一下Cache-Control可以设置哪些值: 一、可缓存性 public: http通信的过程中,包括请求的发起方(浏览器)、代理缓存服务器都可以进行缓存。 private :只 阅读全文
posted @ 2019-02-22 20:57 西门本不吹雪 阅读(2558) 评论(0) 推荐(0)
异步相关及事件循环
摘要:异步相关 script start 同步代码 async1 start 同步代码 async2 Promise是立即执行的,使用会先执行,这时console.log('async1 end')进入微任务中 promise1 Promise是立即执行的 这时console.log('promise2' 阅读全文
posted @ 2019-02-20 23:39 西门本不吹雪 阅读(189) 评论(0) 推荐(0)
js的this对象相关
摘要:如果把var scope= ‘globe’ 为 let scope = ‘globe’,结果就是 obj.lop(); // undefined: low obj.lop.call(obj); // undefined: low log.call(obj, 'create') // own: cre 阅读全文
posted @ 2019-02-20 23:32 西门本不吹雪 阅读(224) 评论(0) 推荐(0)
js数组扁平化
摘要:扁平化就是这样的: fun([1,2,[3,4]]) // [1,2,3,4] let a = [] console.log(a.concat(...[1, 2, 3, [4, 5]])) console.log(a.concat(...[1, [[2,55],9], 3, [4, 5]])) // 阅读全文
posted @ 2019-02-20 23:18 西门本不吹雪 阅读(139) 评论(0) 推荐(0)
异步解决方案的发展历程
摘要:1. 回调函数(callback) 缺点:回调地狱,不能用 try catch 捕获错误,不能 return 回调地狱的根本问题在于: 缺乏顺序性: 回调地狱导致的调试困难,和大脑的思维方式不符; 嵌套函数存在耦合性,一旦有所改动,就会牵一发而动全身,即(控制反转); 嵌套函数过多的多话,很难处理错 阅读全文
posted @ 2019-02-20 23:00 西门本不吹雪 阅读(190) 评论(0) 推荐(0)
javascript新增加的数据结构: Set Map WeakSet WeakMap
摘要:一、Set ES6提供新的数据结构Set,类似于Array,不过Array中的值可以重复,但是Set中的值不可以重复 声明: Set函数是一个构造函数 let set = new Set([1,2,3,2]) console.log((new Set([1,2,3,2])).size) // 3 c 阅读全文
posted @ 2019-02-20 22:54 西门本不吹雪 阅读(225) 评论(0) 推荐(0)
JS数据类型总结及比较
摘要:js的基本数据类型:string,boolean,number,null,undefined,symbol(ES6) 引用数据类型:Object 判断基本数据类型:typeof ,需要注意的是null返回Object 判断引用类型:instanceof ,判断对象的原型 任何function 和 O 阅读全文
posted @ 2019-02-20 21:15 西门本不吹雪 阅读(669) 评论(0) 推荐(0)
原型对象__proto__、getPrototypeOf、setPrototypeOf方法的介绍
摘要:__proto__原来获取或设置当前对象的prototype(原型)对象。 因为__proto__是一个内部属性,不是一个正式的对外的API,所以在操作原型对象时应该使用Object.getPrototypeOf()代替读取操作,使用Object.setPrototypeOf()代替设置操作。 阅读全文
posted @ 2019-02-17 17:00 西门本不吹雪 阅读(1359) 评论(0) 推荐(0)
理解JavaScript的函数(二):原型对象
摘要:0:前提知识 在函数上下文中,this的指向有很多需要注意的地方: 如果函数是作为一个实例对象的方法被调用,this操作符指向该实例。 如果函数是作为构造函数(使用new操作符)被调用,this操作符指向正在被构造的对象(也就是实例)。 也就是说,如果函数是作为构造函数的,构造函数中的this指向实 阅读全文
posted @ 2019-02-17 16:38 西门本不吹雪 阅读(293) 评论(0) 推荐(0)
Typescript中class的码源分析
摘要:学习Typescript是一个很好的体验,一方面我们可以使用更加规范的代码去编程,另一方面,我们可以通过typescript的学习来加强对js的理解。 js中没有类的概念,它使用引用类型来封装对象,引用类型的定义依赖构造函数,所以我们在js中使用对象一般是先定义构造函数,然后使用new操作符进行实例 阅读全文
posted @ 2019-02-17 12:31 西门本不吹雪 阅读(262) 评论(0) 推荐(0)
Typescript中class的extends码源分析
摘要:学习typescript的乐趣在于看它的码源是如何要js实现的、 今天要分析的是类继承的码源。我们先来看一下使用ES5的组合继承是如何做到的: 再来看一下typescript的实现: 阅读全文
posted @ 2019-02-17 12:31 西门本不吹雪 阅读(306) 评论(0) 推荐(0)
JavaScript 执行环境及作用域
摘要:在事件循环的文章中,提到JavaScript的执行是在栈中。(https://www.cnblogs.com/wangtingnoblog/p/js_EventLoop.html) 栈是先进后出的数据结构,操作是在栈顶完成的。(注意,以下代码不考虑声明使用var,即不考虑声明提升的情况) (左边的就 阅读全文
posted @ 2019-02-16 01:40 西门本不吹雪 阅读(216) 评论(0) 推荐(0)
Redux入门之实现一个迷你版的Redux
摘要:Redux是一种数据架构模式,它可以用来管理应用的状态。 之前一直在做Angular的项目,没有使用到过Redux,对于Redux的使用场景和原理都不是很清楚,看资料时作者自己实现了一个Redux,在这里记录一下,加深对Redux原理的理解。 一、基本原理 首先,我们要明白的是: 状态的改变一定是有 阅读全文
posted @ 2019-02-13 22:10 西门本不吹雪 阅读(246) 评论(0) 推荐(0)
JavaScript的异步编程
摘要:JavaScript有几种异步编程的解决方案。 一、回调函数 被传递给其他函数的函数叫作回调函数。回调函数把任务的第二段单独写在一个函数中,待重新执行这个任务时直接调用这个回调函数。 Node中文件操作经常有这样的应用。 使用回调函数时,如果只有一个回调,回调中不会包含其余的回调函数也还好,但是如果 阅读全文
posted @ 2019-02-10 22:56 西门本不吹雪 阅读(633) 评论(0) 推荐(0)
使用Generator函数进行异步编程
摘要:Generator函数在工作中还没有用到过,一直在使用async,最近在看async的原理,发现它只是Generator的语法糖。 Generator的基础知识之前写过文章介绍过(https://www.cnblogs.com/wangtingnoblog/p/js_Generator.html), 阅读全文
posted @ 2019-02-10 20:04 西门本不吹雪 阅读(613) 评论(0) 推荐(0)
Promise的4个例子
摘要:为了加深对Promise的理解,回顾一下之前看到的4个例子。 假定doSomething()和doSomethingElse()都返回promises 测试用例: 一、正常的连调 运行结果 测试结果: 分析: 例子1中的then方法相当于() => {return doSomethingElse() 阅读全文
posted @ 2019-02-10 14:08 西门本不吹雪 阅读(1016) 评论(0) 推荐(0)
JavaScript的Event Loop(浏览器)
摘要:春节的时候看到奇舞周刊发的关于Event Loop的文章https://mp.weixin.qq.com/s/KEl_IxMrJzI8wxbkKti5vg,看的也是迷迷糊糊。 昨天准备写一下几个Promise的小例子,发现理解起来还是要懂得Event Loop,所以又在网上找了几篇文章看了一下,发现 阅读全文
posted @ 2019-02-10 12:57 西门本不吹雪 阅读(201) 评论(0) 推荐(0)
JavaScript Promise小结
摘要:事件模型是在事件发生之前绑定监听事件,在事件发生时监听到事件的发生。 如果事件发生之后进行绑定监听事件,则监听不到事件的发生。 ES6提供的Promise实现了单个值的任意时刻的监听,Rxjs的Observable提供了对一系列值的任意时刻的监听。 所谓的任意时刻,指的是在值发生改变之后进行监听也能 阅读全文
posted @ 2019-02-09 22:16 西门本不吹雪 阅读(788) 评论(0) 推荐(0)
初步学习javascript的generator函数
摘要:ES6提供的Generator语法可以暂停函数的执行,这一点在思考问题上很有帮助。我在考虑问题时常常会想如果可以先执行函数,到某个时刻暂停执行,做一些其他操作后再继续执行函数就好了。 当时只是美好的想象,如果函数可以暂停执行就好了。ES6的Generator正是提供这种暂停的机制的。 看了基础的部分 阅读全文
posted @ 2019-02-09 12:44 西门本不吹雪 阅读(237) 评论(0) 推荐(0)
XHR对象的进度事件
摘要:首先要明确的是对事件的监听方法是在 on + 事件名,比如load事件,load事件的监听方法就是onload,也可以使用addEventListener方法,这个方法的参数就是事件名称('load') 言归正传,Progress Events规范是W3C的一个草案,定义了与客户端服务器通信有关的事 阅读全文
posted @ 2019-02-09 01:39 西门本不吹雪 阅读(4174) 评论(0) 推荐(0)
XMLHttpRequest对象的回顾与提高
摘要:最近在看Angular http模块的码源,发现对于基础的XMLHttpRequest对象还是认识不清楚,所以花了点时间整理一下,虽然现在已经很少直接使用XHR对象了,不过明白原理也能帮助理解http模块。 由于是在Angular环境下测试的,所以还是通过接口来说明XHR对象。 一、XHR的创建 创 阅读全文
posted @ 2019-02-08 23:07 西门本不吹雪 阅读(593) 评论(0) 推荐(0)
javascript 数组总结
摘要:刚刚结束春节假期,这个春节想了很多,关于未来长远的发展方向也大致明确了。。。 言归正传,下面来总结一下js中数组的用法,以后发现有其他用法也会更新这篇文章。 一:定义 二:属性 索引是基于0的 索引小于0时返回undefined 索引最大值为arr.length - 1,获取超过索引最大值对应的值时 阅读全文
posted @ 2019-02-08 20:00 西门本不吹雪 阅读(1065) 评论(0) 推荐(0)