随笔分类 - Javascript
摘要:XSS 简介 跨站脚本攻击,英文全称是 Cross Site Script,本来缩写是CSS,但是为了和层叠样式表(Cascading Style Sheet,CSS)有所区别,所以在安全领域叫做“XSS”。 XSS 攻击,通常指黑客利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,从而通过
阅读全文
摘要:很多时候,我们在操作数组的时候往往就是一个for循环干到底,对数组提供的其它方法视而不见。看完本文,希望你可以换种思路处理数组,然后可以写出更加漂亮、简洁、函数式的代码。 reduce 数组里所有值的和 将二维数组转化为一维数组 计算数组中每个元素出现的次数 使用扩展运算符和initialValue
阅读全文
摘要:网络加载类 减少 HTTP 资源请求次数 合并静态资源图片、JavaScript 或 CSS 代码,减少页面请求数和资源请求消耗 避免重复的资源,防止增加多余请求 减小 HTTP 请求大小 减少没必要的图片、JavaScript、CSS 及 HTML 代码 对文件进行压缩优化 使用 gzip 等方式
阅读全文
摘要:什么是浏览器同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说 Web 是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。 它的核心就在于它认为自任何站点装载的信赖内容是
阅读全文
摘要:原型链继承 缺点 1. 如果 SuperType 存在一个引用类型的属性,而 SubType 的原型对象变为 SuperType 的一个实例,这样每个 SubType 的实例都会共用这个引用类型的属性,不同的 SubType 实例对该属性的操作都将会在其它 SubType 实例中体现出来,这跟每个实
阅读全文
摘要:支持离线 Web 应用开发是 HTML5 的另一个重点。所谓离线 Web 应用,就是在设备不能上网的情况下仍然可以运行的应用。 开发离线Web 应用需要几个步骤。首先是确保应用知道设备是否能上网,以便下一步执行正确的操作。然后,应用还必须能访问一定的资源(图像、Javascript、CSS等),只有
阅读全文
摘要:为什么要使用 Web 缓存 Web缓存一般分为浏览器缓存、代理服务器缓存以及网关缓存,本文主要讲的是 浏览器缓存 ,其它两种缓存大家自行去了解下。 Web 缓存游走于服务器和客户端之间。这个服务器可能是源服务器(资源所驻留的服务器),数量可能是1个或多个;这个客户端也可能是1个或多个。Web 缓存就
阅读全文
摘要:什么是双向数据绑定 双向数据绑定简单来说就是UI视图(View)与数据(Model)相互绑定在一起,当数据改变之后相应的UI视图也同步改变。反之,当UI视图改变之后相应的数据也同步改变。 双向数据绑定最常见的应用场景就是表单输入和提交。一般情况下,表单中各个字段都对应着某个对象的属性,这样当我们在表
阅读全文
摘要:含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了 Promise 对象。 Promise 对象是一个代理对象(代理一个值),被代理的值在 Promise 对象创建时可能是未
阅读全文
摘要:先看段代码: 思考一下,能给出准确的输出顺序吗? 下面我们一个一个的来了解 Event Loop 相关的知识点,最后再一步一步分析出本段代码最后的输出顺序。 JavaScript是单线程 首先我们先了解下进程和线程的概念和关系: 进程: 运行的程序就是一个进程,比如你正在运行的浏览器,它会有一个进程
阅读全文
摘要:offsetWidth / offsetHeight offsetWidth HTMLElement.offsetWidth 是一个只读属性,返回一个元素的布局宽度。一个典型的(各浏览器的offsetWidth可能有所不同)offsetWidth是测量包含元素的边框(border)、水平线上的内边距
阅读全文
摘要:Object构造函数 创建自定义对象最简单的方式就是创建一个 Object 的实例,然后再为它添加属性和方法: 缺点 代码冗余,会产生大量重复代码 无法识别对象(无法知道对象的类型) 对象字面量 对象字面量相比较于 Object 构造函数,代码会比较直观一些: 缺点 代码冗余,会产生大量重复代码 无
阅读全文
摘要:Angular在服务端渲染方面提供一套前后端同构解决方案,它就是 Angular Universal(统一平台),一项在服务端运行 Angular 应用的技术
阅读全文
摘要:在Angular应用开发中,组件可以说是随处可见的。本篇文章将介绍几种常见的组件通讯场景,也就是让两个或多个组件之间交互的方法。根据数据的传递方向,分为父组件向子组件传递、子组件向父组件传递及通过服务传递三种交互方法。
阅读全文
摘要:ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)
阅读全文
摘要:对Angular Component的定义和用法进行剖析
阅读全文
摘要:引言 在工作中引入Angular框架将近一年了,在这一年中不断的踩坑和填坑,当然也学习和积累了很多的知识,包括MVVM框架、前后端分离、前端工程化、SPA优化等等。因此想通过Angular开发实践这系列的文章分享下自己的所学,达到交流和分享的目的。 介绍之前,我假定你了解或者熟悉: "NodeJs"
阅读全文
摘要:概述 观察者模式又叫发布 订阅模式(Publish/Subscribe),它定义了一种一对多的关系,让多个观察者对象同时监听某一个目标对象(为了方便理解,以下将观察者对象叫做订阅者,将目标对象叫做发布者)。发布者的状态发生变化时就会通知所有的订阅者,使得它们能够自动更新自己。 观察者模式的使用场合就
阅读全文
摘要:引言 本文摘自《JavaScript设计模式与开发实践》 在现实中,很多时候也有多种途径到达同一个目的地。比如我们要去某个地方旅游,可以根据具体的实际情况来选择出行的线路。 如果没有时间但是不在乎钱,可以选择坐飞机。 如果没有钱,可以选择坐大巴或者火车。 如果再穷一点,可以选择骑自行车。 在程序设计
阅读全文
摘要:引言 本文摘自《JavaScript设计模式与开发实践》 在传统开发工程师眼里,单例就是保证一个类只有一个实例,实现的方法一般是先判断实例存在与否,如果存在直接返回,如果不存在就创建了再返回,这就确保了一个类只有一个实例对象。 在JavaScript里,单例作为一个命名空间提供者,从全局命名空间里提
阅读全文