1. 语法
    1. 语法
      1. 语句
      2. 注释
      3. 变量
      4. 数据类型
        1. 字符串
        2. 数值
        3. 布尔值
        4. 属于标量
      5. 数组
        1. 普通数组
        2. 关联数组
      6. 对象
    2. 命名规则
      1. 变量
        1. 全局变量
        2. 局部变量
      2. 函数
    3. 操作
      1. 算术操作符
    4. 条件语句
      1. 比较操作符
      2. 逻辑操作符
    5. 循环语句
      1. while循环
        1. while(){}
        2. do...while{}
      2. for循环
    6. 函数
    7. 对象mabt
      1. 内建对象
        1. 数组
          1. .length属性
        2. 数值
          1. .round()方法
        3. 日期
          1. getHours()
          2. getMonth()
          3. getDay()
      2. 宿主对象
        1. 表单form
        2. 图像image
        3. 元素element
        4. 等等还有很多
  2. DOM
    1. document
      1. getElementById("XXX")
      2. getElementsByTagName('p')
      3. getElementsByClassName('XXX')
    2. 获取更改属性
      1. getAttribute('title')
      2. setAttribute('title','values')
    3. 这些属于DOM-Core
  3. 案例研究:javascript图片库
    1. 非DOM设置属性
    2. DOM属性
      1. childNodes
      2. nodeType
      3. nodeValue
      4. firstChild
      5. lastChild
  4. 最佳实践
    1. 平稳退化
      1. window.open(url,name,'width,height')
      2. 伪协议javascript:
      3. 内嵌事件处理onclick
      4. 谁关心禁用js效果\
        1. this.href
      5. 向css学习
        1. 结构样式分离
        2. 外部引用
    2. 分离javascript
      1. 如果是id元素
      2. 如果是class或是标签a
      3. 如果分离外部有个问题需要解决
        1. window.onload
    3. 向后兼容性
      1. if(!getElementById) return false
    4. 性能考虑
      1. 尽量少DOM访问和减少标记
      2. 一个函数检查每个链接的popup类和检查链接中的hover类
      3. 合并和放置脚本
        1. 引入js文件过多推荐合并成一个
        2. 放脚本在文档尾部body尾
        3. 压缩脚本
  5. 案例研究:图片库改进版
    1. 把js代码与HTML文档分离
    2. 让程序检查判断
      1. 是否理解getElementBy等方法?
      2. 是否存在id挂钩?
      3. 子主题 3
    3. 匿名函数
    4. 共享onload事件
    5. 不要做假设有id直接获取数据
    6. 优化
      1. 三元操作符
      2. 其他情况检查
      3. 键盘访问
      4. Javascript和CSS结合起来
      5. DOM-Core和HTML_DOM
        1. DOM-Core标准
        2. html-dom
          1. document.forms
          2. 元素element.属性src
  6. 动态创建插入元素标记
    1. 传统添加技术
      1. document.write()
      2. innerHTML
    2. DOM添加方法
      1. document.createElement('p')
      2. document.createTextNode('text')
      3. 父元素.appendChild(子元素)
      4. insertBefore
      5. 其他
        1. 节点.parentNode
        2. 关于window.onload
      6. 编写insertAfter()方法
        1. parentNode父节点属性
        2. lastChild最后一个子元素
        3. appendChild添加子元素
        4. insertBefore在已知元素前插入新元素
        5. nextSibling节点的下一个元素,没有返回null
      7. 创建出来的节点只是javascript世界的孤儿
    3. Ajax(Asynchronous Javascript And XML)
      1. XMLHttpRequest对象
        1. open(类型,文件地址,true)
        2. onreadystatechange函数
        3. readyState属性
          1. 0未初始化
          2. 1正在加载
          3. 2加载完毕
          4. 3正在交互
          5. 4表示完成
        4. responseText属性
        5. responseXML属性
        6. 异步请求的异步性
      2. 渐进增强与Ajax
      3. Hijax(借用hijack劫持发音,拦截用户触发的请求)
  7. 充实文档内容
    1. 不应该把核心内容用js插入
    2. 选用HTML/XHMTL/HTML5
      1. HTML
      2. XHTML
      3. HTML5
    3. 用javascript显示'缩略语列表'
      1. getElementsByTagName('abbr')
      2. 保存每隔abbr中title属性
      3. 保存每隔abbr中文本值
      4. 创建dldt标签元素
      5. 把上面的值插入dldlt中
    4. 显示快捷键清单
  8. CSS-DOM
    1. 三位一体的网页
      1. 结构层
      2. 表示层
      3. 行为层
    2. style属性
    3. 给表格设置斑马线效果
    4. 伪类:hover
    5. className属性
    6. JS改变CSS样式
      1. 获取元素直接改变style
      2. 增加CSS之后用css写样式表
    7. 对函数进行抽象
  9. js实现动画效果
    1. 时间
      1. setTimeout(函数,毫秒)=a变量
      2. clearTimeout(上面定义的变量a)
    2. parseInt(字符串)
      1. parseFloat(字符串)
    3. 时间递增量
      1. 子主题 2
      2. 子主题 3
    4. 移动链接上显示相应图片
  10. HTML5
    1. 简介
    2. 新标签元素
      1. <section>
      2. <acticle>
      3. <header>
      4. <footer>
      5. <canvas>
      6. <audio>
      7. <video>
    3. Modernizr工具
    4. 表单新属性
      1. 新的控件类型
        1. url
        2. date
        3. number
        4. range
        5. search
        6. tel
        7. color
        8. email
      2. 属性
        1. autocomplete
        2. autofocus
        3. form
        4. min/max/step
        5. pattern
        6. placeholder
        7. required
      3. HTML5其他特性
  11. 综合示例
  12. 附录:JavaScript库