课程

课程介绍

JS作为最流行的编程的语言,运用范围广泛。本课程可以让学员短期内熟练运用JS开发核心技术。

培训对象

对JS开发感兴趣的IT技术人员及管理人员。

课程收益

短期掌握JS开发核心技术。

知识概要

-- JS基础;
-- JS中级开发+案例实战;
-- JS面向对象。

课程大纲

模块

学习内容

第一阶段 JS基础

JS入门:事件、原理、属性、样式、函数、if判断

JS入门:style和行间样式、函数传参、属性操作两种方式

字符串和变量、字面量和变量

提取行间事件、onload、byTagName、数组

循环、全选、选项卡、innerHTML、字符串连接

调试工具的使用、如何调试JS

变量类型、typeof、JS常见类型

类型转换、parseInt、NaN、隐式转换

作用域、闭包、命名规范、运算符、流程控制

变量遮蔽

JS中的随机数、随机颜色、随机范围、随机不重复

函数返回值

深入理解函数返回值

定时器:interval、timeout、时钟、QQ资料框、自动播放选项卡、京东商城侧边栏

arguments、字符串操作、数组操作、Json

循环外i的问题、函数定义和调用的区别、不变的变量

DOM操作基础:创建、添加、删除

BOM基础:窗口操作、UA、location

BOM应用:滚动、scrollTop、offset、clientHeight、浏览器类型检测

事件对象:冒泡、clientX、keyCode、ctrl/alt/shift、默认行为、拖拽

QQ邮箱闪烁提示、回放路径的拖拽

树形菜单、多级右键菜单

第二阶段 JS中级开发+案例实战

批量设置样式:json、cssText、with

location、hash、query的处理,刷新保存页码

Date对象应用:setFullYear/Month等,时间戳、倒计时

Date高级应用

闭包的应用、封闭命名空间

ajax无刷新数据加载:创建、发送、接收、字符集和缓存

DOM应用:firstChild/lastChild、nextSibling/previousSibling

操作属性的第三种方式、自定义属性的获取、src的相对路径

offsetParent、计算元素的页面绝对位置

图片延迟加载——迅雷

简易瀑布流——花瓣

横向瀑布流——百度

DOM与innerHTML、innerHTML的bug

天猫、淘宝吸顶导航条

天猫、京东placeholder输入框

永远在页面中的右键菜单、提示图片

图片预加载、Image对象的使用

Image对象批量加载

运动基础、匀速运动、运动框架、侧边栏、淡入淡出

缓冲运动、页面提示框

多物体运动框架、万能运动框架、链式运动框架、完美运动框架

布局转换、淘宝幻灯片

运动应用:划动提示层、百度百科数字框、新浪滚动微博

永远在页面中放大的图片

无缝滚动

手风琴幻灯片、淘宝网无缝滚动幻灯片

this的用法、完美拖拽

完美封装可重用代码

完美拖拽、吸附拖拽、带框拖拽

程序思想——如何找思路,如何找规律,如何思考

碰撞检测、模拟窗口拖拽大小

窗口拖拽大小的封装和重用

自定义滚动条、鼠标滚轮

事件绑定、DOM事件流

cookie基础

ajax高级应用:用户注册和登录、表单提交

后台接口的使用、接口文档

编写AJax的基本步骤

Jsonp跨域的方法——百度下拉提示

script标签的怪异特性、callback的使用

Jsonp标签的管理

封装可重用的Jsonp方法

ajax制作简易新浪微博:后台、接口、分页、顶、页码

其他常见数据格式及用法:CSV、XML

JS中的预解析机制、script出错时的处理机制

预解析相关面试题

递归及其各种应用

递归相关面试题

递归的性能问题、递归的优化

栈溢出的原因和处理

引用、复制

JS中的异常:try...catch的使用

try的嵌套和性能问题

抛出异常、Exception对象、异常和返回值的区别及用途

JS变量生存周期、垃圾回收机制

闭包与JS垃圾回收

闭包的用法、保存i的值

JS性能优化——健壮性、维护性、性能的平衡

性能瓶颈的识别——性能检测工具的使用:Chrome profiles、YSlow等

JS阻塞加载、图片延迟加载、网络性能优化、压缩、CDN的使用

JS执行性能优化:DOM操作、循环、数组优化、局部变量、eval、parseInt、系统函数、字符串连接、正则等

实例:颜色选择器组件

实例:输入字数统计

正则表达式:RegExp对象、search方法、忽略大小写

match方法和全局匹配、量词的问题、replace方法

字符类、转义字符、行首行为、中文、单词边界、括号

正则应用:可重用的表单校验

自动表单校验、批量表单校验

表格操作:tBodies、tHead、tFoot、rows、cells

表格搜索、排序

自定义表单组件

DOM文本节点:创建、兼容、应用

firstChild怪异问题、childNodes的问题

实例:google日历

domReady事件:优点、DOMContentLoaded、defer、onload

事件队列、封装ready事件函数

事件委托(事件代理):冒泡的使用、srcElement属性、target属性、this的检测

call的使用——解决this指向问题

mouseleave事件——作用、封装,彻底解决mouseout冒泡的问题

运动高级:弹性运动、碰撞运动

弹性应用:滑动导航

第三阶段 JS面向对象

面向对象回顾:什么是面向对象、对象的组成、OOP的特点、this的本质、Object对象

工厂方式构造对象、原型(prototype)、混合法构造JS对象、实例:面向对象的选项卡

JS算法基础:时间复杂度和空间复杂度

数据结构基础:线性和随机、线性表、O表示法、数据结构基本操作

线性表和排序:4大排序算法、适用范围、蜕变和劣化、移动操作开销

树和排序:树的查找、添加和平衡

散列:空间换取时间、空间利用率和算法效率

图:路径算法、预处理和随机处理

模块的规划、接口

模块的加载、依赖、循环依赖

模块作用域和export

script加载和同步、请求合并、压缩代码

模块的重用和冲突

MVC基础:3层模型和耦合度

耦合的问题和消除

数据独立性、独立数据模型

设计模式:优点、常见模式

自定义事件、事件队列管理、事件的传递、事件对象和参数、监听模式的问题

数据队列的管理、反向监听和解耦合、模块独立性

认证过程

无认证考试

开班信息

暂无开班信息