随笔分类 - 一寸光阴
拍什么真理无穷,进一寸有一寸的欢喜
摘要:”迪米特法则“——最少知识原则,不和陌生人说话,就是说,一个对象应当对其他对象有尽可能少的了解。talk only to your immediate friends.初衷是:降低对象之间的耦合度。 中介者模式就是迪米特法则体现的一个很好的例子。 上面这张图其实很好的解释了中介者的作用,当程序中多个
阅读全文
摘要:最近在看Symbol不能使用new操作符,然后类比到Number,String,Boolean,因为它们同属于基本类型,但是有有所差异:Number,String,Boolean是可以使用new操作符进行实例的输出的。出个题: 这里其实考察的是值类型和引用类型,String()返回的是字符串,即基本
阅读全文
摘要:1,javascript中new一个实例时候有哪几步,或者发生了什么?答:第一步,创建一个空对象,将对象的__proto__属性指向构造函数的prototype对象;第二步:改变this指向;第三步:返回该对象。 2,什么是javascript的事件循环? 答:javascript是单线程的,需要一
阅读全文
摘要:javascript中原始值,即基本数据类型,像Number,String,Boolean,undefined,Null都是基本类型值,保存在栈中,但是有个疑问: Symbol打印出来明明是个函数,具有prototype的属性,不能实例化的原因是:Symbol是个原始值。但Symbol明明就是个函数
阅读全文
摘要:之前闲来了解了__proto__和prototype的区别,每个对象都有隐私属性__proto__,而prototype是javascript函数特有的属性。那么constructor属性呢?最近是遇到一个bug:IOS8.3系统File对象的原型上面没有constructor属性,所以无法new一
阅读全文
摘要:这是具体的拖放代码的HTML,里面依赖两个组件:EventUtil.js是兼容浏览器添加方法的库,EventTarget.js是一个发布-订阅者模式的对象库。 EventUtil.js: EventTarget.js: 以下是拖拽功能实现的全代码,功能性比较强大,支持在mousestart时候有回调
阅读全文
摘要:好莱坞原则——不要给我们打电话,我们会给你打电话(don‘t call us, we‘ll call you)。在Javascript中就是:别调用我们,我们会调用你。 “好莱坞原则”强调的是高层对低层的主动作用,模板方法模式是好莱坞原则的一个经典使用场景,抽象父类控制子类的哪些方法在什么时候被调用
阅读全文
摘要:线程,是程序执行流的最小单位。线程可与同属一个进程的其他线程共享所拥有的全部资源,同一进程中的多个线程之间可以并发执行。线程有就绪,阻塞,运行三种基本状态。 阮一峰大神针对进程和线程的类比,很是形象:计算机的核心CPU,是个工厂,时刻运转着,工厂里有很多个车间(进程),一个车间开工其他车间不能开工,
阅读全文
摘要:一般认为,钩子函数就是回调函数的一种,其实还是有差异的,差异地方就是:触发的时机不同。 先说钩子函数: 钩子(Hook)概念源于Windows的消息处理机制,通过设置钩子,应用程序对所有消息事件进行拦截,然后执行钩子函数。 上面的例子,在按钮点击时候立即执行钩子函数。而看下面的例子: 给btn绑定了
阅读全文
摘要:观察者模式:定义一对多的关系,让多个观察对象同时监听某一个主题对象,主题对象状态发生变化就通知所有观察者对象。所以它是由两类对像组成:Subject主题+Observer观察者。主题发布事件,观察者通过订阅事件观察主题。 Observer模式提供给关联对象一种同步通信的手段,使得主题和观察者之间保持
阅读全文
摘要:提到代理,分为:正向代理和反向代理。 正向代理:就是你访问不了Google,但是国外有个VPN可以访问Google,你访问VPN后叫它访问Google,然后把数据传给你。 正向代理隐藏了真实的客户端。 反向代理:你访问baidu.com,后面有成千上万台服务器,具体访问哪一台,你不知道,只需要知道反
阅读全文
摘要:其实就是跨域请求。我们知道XHR只能访问同一个域中的资源,这是浏览器的安全策略所限制,但是开发中合理的跨域请求是必须的。CORS是W3的一个工作草案,基本思想就是:使用自定义的HTTP头部让浏览器与服务器沟通,决定响应成功或失败。 CORS需要浏览器和服务器同时支持,所有浏览器都支持该功能,IE浏览
阅读全文
摘要:javascript的基本类型:Undefined,Null,Boolean,Number,String 引用类型:Object,Array,Function 基本类型值在内存中占据固定大小,被保存在栈内存中,引用类型值是对象,保存在堆内存中。 Javascript的内存的生命周期对于用户来说是透明
阅读全文
摘要:经常见到别人用with,但是没有细究,现在有时间扒一扒用with有多方便: 其实就是有时候你需要多次使用一个对象的属性或者方法,你不想用Qiao.name,Qiao.age,Qiao.height去访问。with语句的代码块里面可以直接写属性名进行访问。 延长作用域链,其实就是给作用域链的前端增加了
阅读全文
摘要:我觉着我可能对这块有点误解,所以单独开个博说下自己的理解,当然是研究后的正解了。 1,参数传递是基本类型,看个例子: 感觉这个都没啥好说的,基本类型传入函数后,函数内部参数生成一个参数副本,按值传入没毛病。 2,引用类型(一个对象)当作参数传入函数后呢? 在这个例子里面,obj和person指向的是
阅读全文
摘要:项目中有人将图片转换为base64的编码进行img的src属性赋值,可以妥妥的显示。上面那串字符串是Data URI scheme:将一些小的数据直接嵌入网页中,而不用再从外部文件引入,上面那串字符串其实是一张小图片,可以通过复制粘贴到chrome的地址栏中,可以看到是个默认图像。 优点: 1,减少
阅读全文
摘要:浏览器的策略本质是:一个域名下面的JS,没有经过允许是不能读取另外一个域名的内容,但是浏览器不阻止你向另外一个域名发送请求。 所以form表单提交没有跨域问题,提交form表单到另外一个域名,原来页面是无法获取新页面的内容,或者说form提交后不需要返回,但是ajax是需要返回的。 而ajax是想要
阅读全文
摘要:先看个概念: window.devicePixelRatio = 物理像素 / dips(独立像素) window.devicePixelRatio是设备的物理像素和独立像素的比例,可以叫设备像素比。 非视网膜屏幕的iphone上设备像素比是1,而retina屏幕的iphone,一般像素比是2或者3
阅读全文
摘要:前端性能优化可以说很广泛了: 1,减少HTTP请求次数的优化: 1)使用代理请求,对于用户频繁的请求,客户端先自己缓存进入代理对象,代理来决定是否真正进行HTTP请求,而不是每次都触发请求。 2)缓存代理,例如分页请求,可以将之前的请求数据缓存再代理对象中,下次请求时候先过缓存代理,有缓存就拿缓存的
阅读全文
摘要:Reflect对象其实就是为了取代Object对象。取代原因有一下几点: 1)Object对象的一些内部方法放在了Reflect上面,比如:Object.defineProperty。主要是优化了语言内部的方法。 2)修改Object方法的返回,例如:Object.definePropery(obj
阅读全文

浙公网安备 33010602011771号