一.JavaScript基础
1.闭包
简单来说,一个函数内部调用了函数外部的变量就是闭包。
简单闭包:
var i = 1; function fn (){ alert(i); }
复杂闭包:
var cache = (function(){ var obj = {};//避免暴露非必要变量 return { get: function(key){ return obj[key]; }, set: function(key, value){ obj[key] = value; } }; })();
闭包的优点是有利于保护私有变量,加强了封装性;不增加额外的全局变量。但它强耦合,常驻内存。
2.作用域
表示变量或函数起作用的区域,指代了它们在什么样的上下文中执行,亦即上下文执行环境。Javascript的作用域只有两种:全局作用域和本地作用域,本地作用域是按照函数来区分的。
<script> var i = 1; function fn(){ alert(i);// undefined var i = 2; alert(i);// 2 } fn(); </script>
<script> var i = 0; while(i < 3) { i ++; setTimeout(function(){ alert(i); }, 1); } // 弹出3次“3” </script>
3.作用域链
当代码在一个环境中执行时,会创建变量对象的一个作用域链来保证对执行环境有权访问的变量和函数的有序访问。
<script> !function() { var global = { name: 'global' }; function globalFn() { var inner = { name : 'globalFn inner' }; !function() { var foo = 'foo'; console.log(foo); console.log(inner.name); console.log(global.name); }(); } globalFn(); }(); </script>
运行结果:
foo globalFn inner global
4.类的定义
方式一:
function Foo() { this.a = 1; this.start = function(){ // ... }; this.end = function(){ // ... }; }
方式二:
function Foo() { this.a = 1; } Foo.prototype.start = function(){ // ... }; Foo.prototype.end = function(){ // ... };
方式三:
function Foo() { this.a = 1; } Foo.prototype = { start: function(){ // ... }, end: function(){ // ... } };
方式四:
Function.prototype.method = function(name, fn){ this.prototype[name] = fn; }; function Foo() { this.a = 1; } Foo.method('start', function(){ // ... }); Foo.method('end', function(){ // ... });
方式五:
// 链式调用 Function.prototype.method = function(name, fn){ this.prototype[name] = fn; return this; }; function Foo() { this.a = 1; } Foo.method('start', function(){ // ... }).method('end', function(){ // ... });
二.前端优化
1.css优化
CSS文件写在头部进行引用
避免在文档内内联样式
避免滥用web字体
避免CSS表达式
用<link>代替@import
避免使用(IE)过滤器
2.javaScipt优化
把脚本放到底部
避免在文档内内联脚本
最小化DOM访问
var i = $(input); i.attr(); i.val();
最小化全局对象访问
var a = window.a; a.xx a.xxx
3.image优化
优化图片
a.把gif转成png
b.运行pngcrush或其它工具压缩png
c.运行jpegtran或其它工具压缩jpeg
优化CSS雪碧图
a.缩小图片间的间距
b.把颜色近似的图片合并到一张雪碧图
不要在html中缩放图片
favicon.ico小且缓存
4.请求优化
Combined Files-合并文件
CSS Sprites-雪碧图,将多张图片合并成一张图片
Inline Images-內连图片
压缩资源文件
5.服务器优化
Gzip压缩资源文件
a.Gzip通常可以减少70%的响应大小
b.可压缩的有html、js、css、json等文本文件
添加Expires或Cache-Control
a.对静态组件:Expires
b.对动态组件:Cache-Control
配置Etags
尽量使用GET Ajax请求
如下所示百度主页的网络请求信息:
Etag 是URL的Entity Tag,用于标示URL对象是否改变,区分不同语言和Session等等。具体内部含义是使服务器控制的,就像Cookie那样。
HTTP协议规格说明定义ETag为“被请求变量的实体值” 。另一种说法是,ETag是一个可以与Web资源关联的记号(token)。典型的Web资源可以一个Web页,但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义,并在HTTP响应头中将其传送到客户端。
常用cache-directive值
对cache-directive值的浏览器响应
相关推荐
近年来网站客户端开发规模越来越大并且有很多由AJAX开发的复杂页面, 系统中的客户端脚本大量增加,前端开发就产生了诸如代码量大、组织困难、难 ...把前端优化技术 应用到项目实现中,具体分析了各自的性能优化效果。
以下是一些基础的前端优化策略和分析方法: 首先,减少HTTP请求数是优化的基础,因为每个请求都会带来额外的网络延迟。合并CSS和JavaScript文件,以及使用CSS Sprites技术能有效减少请求次数。 CDN(内容分发网络...
文章还讨论了性能优化技巧及相关开发工具的使用。 适合人群:适合所有前端开发初学者及有一定经验的开发者提升技术水平。 使用场景及目标:适用于希望深入理解和掌握JavaScript核心技术及前沿技术的读者,帮助其更好...
一、JavaScript基础 在JavaScript的学习中,首先需要理解其基础语法,包括变量声明(var、let、const)、数据类型(原始类型和引用类型)、操作符(算术、比较、逻辑、三元)、流程控制(条件语句、循环语句)、函数...
根据提供的文件内容,我们可以整理出以下Web前端设计基础的知识点: 1. HTML5、CSS3、JavaScript概述 - HTML5是最新版本的超文本标记语言,用于创建网页的标准标记语言。它具有更快的访问速度、更好的搜索引擎优化...
JavaScript是Web前端开发的核心技术之一,它为网页添加交互性和动态功能,使用户界面更加生动。这1500个JavaScript特效涵盖了各种常见的前端应用场景,是开发者实现网页动态效果的重要资源库。 首先,我们来了解...
此外,郭碧青也谈到了前端优化在移动端的应用,特别是在手机QQ兴趣部落项目中的实践。因为移动端设备的资源和网络条件通常受限,所以对于性能优化的要求更高。他分享了使用了如React Native和Vue等现代前端框架的...
JavaScript 和 jQuery 是现代 Web 前端开发中的两个核心工具,它们共同为创建动态、交互式的网页提供了强大的功能。在本教程中,我们将深入探讨如何将这两种技术与 HTML 和 CSS 结合,以实现高效的网页设计。 ...
JavaScript,一种广泛应用于Web开发的脚本语言,是前端开发的核心技术之一,也是现代互联网应用不可或缺的部分。精通JavaScript意味着能够熟练地运用它来创建交互式、动态的网页内容,提升用户体验,实现复杂的功能...
总结,这个"单页Web应用:JavaScript前端到后端 源码"涵盖了从基础的JavaScript编程到复杂的前端框架应用,再到与后端API的交互,以及优化和测试的全过程。通过研究这份源码,开发者可以深入理解SPA的工作原理,提升...
前端优化涵盖了多个方面,包括页面加载优化、缓存利用、JavaScript优化以及CSS优化。这些技术有助于加快页面加载速度,减少HTTP请求,提高响应时间,并且能有效地降低服务器压力。 1. **页面加载优化** - **减少...
1. **基础特效**:JavaScript基础特效包括动画效果(如淡入淡出、滑动、旋转等)、计时器和定时任务、事件监听与处理(点击、滚动、鼠标悬停等)。这些是构建任何复杂特效的基础,熟练掌握它们能让你在处理用户交互...
前端优化的技术方法包括优先级队列、缓存机制、页面压缩、图片优化、JavaScript 优化等。这些方法可以有效地提升 Web 站点的性能。 知识点六: Ajax 异步工作方式的影响 Ajax 异步工作方式使得浏览器的 2 连接请求...
JavaScript,作为一种广泛...以上内容涵盖了JavaScript前端开发中的主要知识点,从基础语法到高级特性,再到实际应用中的各种技术和最佳实践。通过深入理解和掌握这些知识,开发者可以有效地创建功能丰富的前端应用。
总的来说,通过这个“JavaScript学习资料整理”系列,你可以系统地学习JavaScript,从基础到高级,涵盖语法、对象、DOM操作、模块化、异步编程、前端框架以及性能优化等多个方面。不断实践和积累经验,将使你在...
使用场景及目标:帮助读者全面掌握JavaScript的基础知识,提升编程技能,理解和运用现代前端框架的最佳实践。 其他说明:文档不仅涵盖基础知识,还包括了许多实际案例和最佳实践,有助于读者将理论知识应用于实际...
由于提供的文件信息不包含实质性的内容描述,而是反复提及《JavaScript基础与案例开发详解》这本书以及一个网址***,这导致无法从中抽取具体的知识点。为了满足您的要求,我将基于“JavaScript基础与案例开发”这一...
史上最全web前端技术全套教程,包括: 前端API集成 前端基础知识 前端开发最佳实践 前端性能优化 前端构建工具 前端框架和库 前端测试工具 前端状态管理 等流行技术的系列教程
总之,JavaScript是前端开发的基础,深入理解和掌握其核心概念、语法特性以及相关工具和库,对于成为一名优秀的前端开发者至关重要。通过解决实际问题,不断练习和提升,是学习JavaScript的最佳途径。
JavaScript,作为全球最广泛使用的编程语言之一,是创建交互式网页和动态应用的关键工具。...这样,你不仅可以熟悉JavaScript的基础,还能了解和运用一些高级特性,为成为一名熟练的前端开发者打下坚实的基础。