学习(JavaScript高级程序设计 第三版)红皮书笔记

学习(JavaScript高级程序设计 第三版)红皮书笔记

1
2
3
仅仅个人用来做笔记,如有不对请指出,本人购买过此书--!!
真的很敬佩 尼古拉斯 泽卡斯(本书作者)
它既是一门简单得语言,同时他也是最难的一门语言

第一章 JavaScript 简介

1. JavaScript 历史回顾

JavaScript诞生于 1995 年 是当时得主要目的是处理服务端语言得一些验证需求 由于当时得网速太慢,发送到后台比较麻烦 所以才诞生了 JavaScript 具体得请自行 Googole 由于是历史问题,了解就好 没必要计入笔记中!

2. JavaScript 实现

一个完整的JavaScript是由下列三个不同的部分组成得

One 核心 ECMAScript

Two 文档对象模型 (DOM)

Three 浏览器对象模型 (BOM)

1. ECMAScript

由ECMA -262 定义的 ECMAScript 与Web浏览器没有依赖关系 可以这么理解 ECMAScript 是一个可以实现各种功能得语言

也就是说ECMA - 262 标准 是没参照web浏览器得 它规定了这门语言得下列组成部分

  1. 语法
  2. 类型
  3. 语句
  4. 关键字
  5. 保留字
  6. 操作符
  7. 对象
    1
    下面是一些ECMAScript 得历史和版本有想了解的请自行买书观看

2. 文档对象模型(DOM)

文档对象模型(DOM)是针对 XML 但经过扩展用于HTML 得应用程序接口 DOM把整个页面映射为一个多层节点结构 HTML 或 XML 页面中的每个组成部分都是某种类型得节点 这些节点包含着不同类型得数据

<html>
    <head>
        <title> sample Page</title>
    </head>
    <body>
        <p> Hello World! </p>
    </body>
</html>

在DOM 中 这个页面可以如图所示分层节点图表示

通过 DOM 创建得这个表示文档得树形图 开发人员获得了 控制页面内容和结构得主动权 借助DOM提供得API, 开发人员可以轻松自如得删除,添加,替换任何节点

1
下面是一些DOM的历史和版本以及级别有想了解的请自行买书观看

3.浏览器对象模型(BOM)

从根本上讲,BOM 只处理浏览器窗口和框架 但人们习惯上也把所有针对浏览器的 JavaScript扩展算作BOM的一部分 下面就是一些这样的扩展

1
下面是一些JS的版本历史有想了解的请自行买书观看

第二章 在HTML中使用JavaScript

<script.> 元素

向HTML 页面中插入 JavaScript 的主要方法 这个元素是NETscaoe创造 和实现HTML 4.0 为<script.>定义了6个元素

  1. async: 可选 表示应该立即下载脚本 但是不妨碍页面中的其他操作 比如下载其他资源或等待其他脚本 值队外部脚本文件有效

  2. charset: 可选 表示通过src属性指定代码的字符集 由于大多数浏览器会忽视它的值 因此这个属性很少有人用

  3. defer: 可选 表示脚本可以延迟到文档完全被解析和显示后执行 至多外部脚本文件有效 ie7 也支持

  4. language: 已废弃

  5. src: 可选 表示包含要执行代码的外部文件

  6. type: 是language的替代属性 编写代码使用的脚本语言内容类型

    在使用JavaScript的时候要指定他的类型 默认是text/JavaScript

    在JavaScript 内部的代码从上至下依次解释

    在嵌入JavaScript 代码时 记住不要再代码中的任何地方出现 “</script>” 字符串下面这个在浏览器加载就会发生错误

    <script type="text/javascript">
       function satHi(){
           alert("</script>");
       }


    因为按照解析嵌入式代码的规则 会以为是结束标签 通过加\可以解决 回车上面的那个

    <script type="text/javascript">
       function satHi(){
           alert("<\/script>");
       }

    标签的位置

    按照惯例所有的JavaScript元素都应该放在页面<\head>中 例

    Document !这里是内容

    这种做法的目的就是把所有外部文件引入到相同的位置 head中拥有所有JavaScript 文件意味着必须等到全部JavaScript 代码都被下载解析执行之后 才可以呈现内容 这对于那种多的JavaScript文件的页面 会在下载期间页面空白 为了避免这个问题 现在的浏览器一般把引用的js放在<body.>后面

    <!DOCTYPE html>
    Document !这里是内容

    这样 就可以在解析JavaScript 之前 页面会呈现在浏览器中 用户也会因为事件缩短二感到打开页面速度加快了

    延迟脚本 defer

    HTML4.0为标签定义了defer属性 这个属性的用途是表明脚本在执行时不会影响页面的构造 也就是说 脚本会被延迟到整个页面都解析完毕后在运行 因此在标签中设置defer属性相当于告诉浏览器立即下载 但是延迟执行

    <!DOCTYPE html>
    Document !这里是内容

    注意:defer只适用于外部脚本文件 这一点在H5总已经规定

    异步脚本

    HTML5 为标签元素定义了async属性 这个属性与 defer属性类似 都用于改变处理脚本的行为 类似defer async也只适用于外部脚本文件 但是于defer不同的是 async脚本不保证会按照先后顺序执行

    Document !这里是内容 上面的代码 js文件不一定哪个第一个加载

    4节 5节 由于现在使用的是H5规范 可以跳过太老了

    嵌入代码与外部文件

    在HTML 中嵌入 JavaScript 虽然没有问题 但一般认为最好还是放在外部执行包含JavaScript 的文件 不过,文章说的是没有硬性规定 但是他却有很多优点 例如

    1. 可维护性 编辑不同的HTML页面会造成维护问题 但是都放在一个文件夹里 会很容易维护 而且可以让编程人员跟专注的开发JavaScript 代码
    2. 可缓存 浏览器能够根据具体设置缓存连接的所有外部JavaScript 文件 也就是说 有两个文件用同一个文件 那么就只需要下载一次
    3. 适应未来 这个我感觉就是以后无论怎么更新 引入了也不会麻烦新代码

      文档模式

      这里就自行看吧 我也没怎么搞懂

    第三章 基本概念

    语法

    ECMAScript得语法大量借鉴了C和其他类C语言 因此熟悉这些语言得开发人员在接受这种轻松的语法 会得心应手

区分大小写

ECMAScript中的一切区分大小写 这就是意味着 TEST 和test是不同的两个

标识符

1,什么是标识符

标识符就是指变量 函数 属性 得名字 命名有规则:

1.第一个字符必须是一个字母 下划线或者美元符号

2.其他字符可以是字母 下划线 美元符号或数字

3.国际标准是建议驼峰命名法(也就是第一个字母小写 剩下每个有意义得单词首字母大写 eg:myCar) 没有强制让人使用

特别提示

不能把关键字 保留字 true false 和null 用作标识符

2,注释

ECMAScript 使用C得注释风格 包括单行注释和多行

单行注释 两个 //

块级注释

/*
*       //我是没用的
*
*/
特别提示

不是每个新行*都必须要写 只是企业之间喜欢这么用 严谨(个人理解)

3,严格模式

ECMAScript5引入了严格模式 (static mode)得概念 严格模式会按照该模式标准检测你得代码 对某些不安全得操作也会抛出异常 要在代码中使用严格模式 添加下面得代码

"use strict"

这段代码看似字符串是为了不破坏ECMAScript3而特定得,在函数体中使用也可以将该函数体转变为 严格模式

严格模式下 JavaScript 的执行结果 会有很大的不同

4,语句

ECMAScript 中的语句以一个;结尾 如果省略分号 则由解析器决定 确定结尾

虽然语句分号不需要你写 但是官方的说法是不建议你去掉分号

原因是加上这个分号可以避免很多错误(我用VUE 尤大大万岁) 然后开发人员可以任意删除空格精简代码

然后 加上分号可以使项目运行加快 因为不用解析器给你加了 :)

关键字 保留字

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2018-2020 XueLong Wang
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信