高三笔记系列(一--三章)

写在前面:暂时只是粗略的排版,以后还会整理。也可到 http://bulabula.top/高三笔记/笔记1-3.txt 下载TXT版。

一、JavaScript简介
  1.2 JavaScript实现
    JavaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:
    ECMAScript,由ECMA-262 定义,提供核心语言功能;
    文档对象模型(DOM),提供访问和操作网页内容的方法和接口;
    浏览器对象模型(BOM),提供与浏览器交互的方法和接口。
  1.2.2 文档对象模型
    1)、DOM把整个页面映射为一个多层节点结构。

二、在HTML中使用JavaScript
  2.1 <script>元素
    1)、HTML 4.01 为<script>定义了下列6 个属性。
      async:可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
      charset:可选。表示通过src 属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。
      defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7 及更早版本对嵌入脚本也支持这个属性。
      language:已废弃。原来用于表示编写代码使用的脚本语言(如JavaScript、JavaScript1.2或VBScript)。
      src:可选。表示包含要执行代码的外部文件。
      type:可选。可以看成是language 的替代属性;表示编写代码使用的脚本语言的内容类型(也称为MIME 类型)。其默认值为text/javascript。
    2)、所有<script>元素都会按照它们在页面中出现的先后顺序依次被解析。在不使用defer 和async 属性的情况下,只有在解析完前面<script>元素中的代码之后,才会开始解析后面<script>元素中的代码。
  2.2 嵌入代码和外部文件
    1)、外链script的优点:可维护性、可缓存、适应未来。

三、基本概念

    3.4.5 Number类型
        1)、e 表示法表示的数值等于e 前面的数值乘以10 的指数次幂。比如3e-2表示3/(10的平方),也就是小数点前移两位。3e+2表示3*(10的平方)。
        2)、要想确定一个数值是不是有穷的(换句话说,是不是位于最小和最大的数值之间),可以使用isFinite()函数。
        3)、NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况。可用isNaN()函数判断值是不是NaN。
        3)、有3 个函数可以把非数值转换为数值:Number()、parseInt()和parseFloat()。
    3.4.6 String类型
        1)、String 数据类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。
                 换行
                 制表
                空格
                 回车
            f    进纸
        2)、ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
        3)、数值、布尔值、对象和字符串值(没错,每个字符串也都有一个toString()方法,该方法返回字符串的一个副本)都有toString()方法。但null 和undefined 值没有这个方法。调用数值的toString()方法可以传递输出值的基数(2,8,10,16),默认以十进制返回数字的字符串表示。
        4)、在不知道要转换的值是不是null 或undefined 的情况下,还可以使用转型函数String(),这个函数能够将任何类型的值转换为字符串。
    3.4.7 Ojbect类型
        1)、ECMAScript 中的对象其实就是一组数据和功能的集合。
        2)、Object 的每个实例都具有下列属性和方法:
            constructor:保存着用于创建当前对象的函数。
            hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中(而不是在实例的原型中)是否存在。
            isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
            toLocaleString():返回对象的字符串表示,该字符串与执行环境的地区对应。
            toString():返回对象的字符串表示。
            valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。
    3.5.1 一元操作符
        1)、递增和递减操作符直接借鉴自C,而且各有两个版本:前置型和后置型。
        2)、后置递增和递减与前置递增和递减有一个非常重要的区别,即递增和递减操作是在包含它们的语句被求值之后才执行的。
            如:var a = 10;var b = --a + 10; 会先计算完--a后再加10 。而var b = a-- + 10;则会先计算完a加10后再--a。
   3)、递增递减操作符遵循以下规则:
                在应用于一个包含有效数字字符的字符串时,先将其转换为数字值,再执行加减1 的操作。字符串变量变成数值变量。
                在应用于一个不包含有效数字字符的字符串时,将变量的值设置为NaN。字符串变量变成数值变量。
                在应用于布尔值false 时,先将其转换为0 再执行加减1 的操作。布尔值变量变成数值变量。
                在应用于布尔值true 时,先将其转换为1 再执行加减1 的操作。布尔值变量变成数值变量。
                在应用于浮点数值时,执行加减1 的操作。
                在应用于对象时,先调用对象的valueOf()方法以取得一个可供操作的值。然后对该值应用前述规则。如果结果是NaN,则在调用toString()方法后再应用前述规则。对象变量变成数值变量。
    3.5.2 位操作符
        1)、按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码。按位非操作的本质:操作数的负值减1。
        2)、按位与操作符由一个和号字符(&)表示。按位与操作是把数字转为二进制后对齐然后比较两个数值的对应位,若都是1 时才返回1,任何一位是0,结果都是0。
        3)、按位或操作符由一个竖线符号(|)表示,,按位或操作在有一个位是1 的情况下就返回1,而只有在两个位都是0 的情况下才返回0。
        4)、按位异或操作符由一个插入符号(^)表示,按位异或与按位或的不同之处在于,这个操作在两个数值对应位上只有一个1 时才返回1,如果对
    应的两位都是1 或都是0,则返回0。
        5)、左移操作符由两个小于号(<<)表示,这个操作符会将数值的所有位向左移动指定的位数。
        6)、有符号的右移操作符由两个大于号(>>)表示,这个操作符会将数值向右移动,但保留符号位(即正负号标记)。
        7)、无符号右移操作符由3 个大于号(>>>)表示,这个操作符会将数值的所有32 位都向右移动。
    3.5.3 布尔操作符
        1)、逻辑非操作符由一个叹号(!)表示,可以应用于ECMAScript 中的任何值,这个操作符永远返回一个布尔值。
     逻辑非操作符遵循下列规则:
                如果操作数是一个对象,返回false;
                如果操作数是一个空字符串,返回true;
                如果操作数是一个非空字符串,返回false;
                如果操作数是数值0,返回true;
                如果操作数是任意非0 数值(包括Infinity),返回false;
                如果操作数是null,返回true;
                如果操作数是NaN,返回true;
                如果操作数是undefined,返回true。
        2)、逻辑与操作符由两个和号(&&)表示,使用该操作符时从左到右依次把值转为bool值比较,返回第一个false对应的值。
     逻辑与操作符遵循下列规则:
                如果第一个操作数是对象,则返回第二个操作数;
                如果第二个操作数是对象,则只有在第一个操作数的求值结果为true 的情况下才会返回该对象;
                如果两个操作数都是对象,则返回第二个操作数;
                如果有一个操作数是null,则返回null;
                如果有一个操作数是NaN,则返回NaN;
                如果有一个操作数是undefined,则返回undefined。
        3)、逻辑或操作符由两个竖线符号(||)表示,使用该操作符时从左到右依次把值转为bool值比较,返回第一个false对应的值。
     逻辑或操作符遵循下列规则:
                如果第一个操作数是对象,则返回第一个操作数;
                如果第一个操作数的求值结果为false,则返回第二个操作数;
                如果两个操作数都是对象,则返回第一个操作数;
                如果两个操作数都是null,则返回null;
                如果两个操作数都是NaN,则返回NaN;
                如果两个操作数都是undefined,则返回undefined。
    3.5.4 乘性操作符
        1)、乘法操作符由一个星号(*)表示,用于计算两个数值的乘积。
            乘法操作符遵循以下规则:
                如果操作数都是数值,执行常规的乘法计算,即两个正数或两个负数相乘的结果还是正数,而如果只有一个操作数有符号,那么结果就是负数。如果乘积超过了ECMAScript 数值的表示范围,则返回Infinity 或-Infinity;
                如果有一个操作数是NaN,则结果是NaN;
                如果是Infinity 与0 相乘,则结果是NaN;
                如果是Infinity 与非0 数值相乘,则结果是Infinity 或-Infinity,取决于有符号操作数的符号;
                如果是Infinity 与Infinity 相乘,则结果是Infinity;
                如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后再应用上面的规则。
        2)、除法操作符由一个斜线符号(/)表示,执行第二个操作数除第一个操作数的计算。
            除法操作符遵循以下规则:
                如果操作数都是数值,执行常规的除法计算,即两个正数或两个负数相除的结果还是正数,而如果只有一个操作数有符号,那么结果就是负数。如果商超过了ECMAScript 数值的表示范围,则返回Infinity 或-Infinity;
                如果有一个操作数是NaN,则结果是NaN;
                如果是Infinity 被Infinity 除,则结果是NaN;
                如果是零被零除,则结果是NaN;
                如果是非零的有限数被零除,则结果是Infinity 或-Infinity,取决于有符号操作数的符号;
                如果是Infinity 被任何非零数值除,则结果是Infinity 或-Infinity,取决于有符号操作数的符号;
                如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后再应用上面的规则。
        3)、求模(余数)操作符由一个百分号(%)表示。
            求摸操作符遵循以下规则:
                如果操作数都是数值,执行常规的除法计算,返回除得的余数;
                如果被除数是无穷大值而除数是有限大的数值,则结果是NaN;
                如果被除数是有限大的数值而除数是零,则结果是NaN;
                如果是Infinity 被Infinity 除,则结果是NaN;
                如果被除数是有限大的数值而除数是无穷大的数值,则结果是被除数;
                如果被除数是零,则结果是零;
                如果有一个操作数不是数值,则在后台调用Number()将其转换为数值,然后再应用上面的规则。
    3.5.5 加性操作符
        1)、加法操作符(+)。
            遵循规则如下:
                如果两个操作符都是数值,执行常规的加法计算,然后根据下列规则返回结果:
                    如果有一个操作数是NaN,则结果是NaN;
                    如果是Infinity 加Infinity,则结果是Infinity;
                    如果是-Infinity 加-Infinity,则结果是-Infinity;
                    如果是Infinity 加-Infinity,则结果是NaN;
                    如果是+0 加+0,则结果是+0;
                    如果是-0 加-0,则结果是-0;
                    如果是+0 加-0,则结果是+0。
                如果有一个操作数是字符串,那么就要应用如下规则:
                    如果两个操作数都是字符串,则将第二个操作数与第一个操作数拼接起来;
                    如果只有一个操作数是字符串,则将另一个操作数转换为字符串,然后再将两个字符串拼接起来。
                如果有一个操作数是对象、数值或布尔值,则调用它们的toString()方法取得相应的字符串值,然后再应用前面关于字符串的规则。对于undefined 和null,则分别调用String()函数并取得字符串"undefined"和"null"。
        2)、减法操作符(-)。
            遵循规则如下:
                如果两个操作符都是数值,则执行常规的算术减法操作并返回结果;
                如果有一个操作数是NaN,则结果是NaN;
                如果是Infinity 减Infinity,则结果是NaN;
                如果是-Infinity 减-Infinity,则结果是NaN;
                如果是Infinity 减-Infinity,则结果是Infinity;
                如果是-Infinity 减Infinity,则结果是-Infinity;
                如果是+0 减+0,则结果是+0;
                如果是+0 减-0,则结果是-0;
                如果是-0 减-0,则结果是+0;
                如果有一个操作数是字符串、布尔值、null 或undefined,则先在后台调用Number()函数将其转换为数值,然后再根据前面的规则执行减法计算。如果转换的结果是NaN,则减法的结果就是NaN;
                如果有一个操作数是对象,则调用对象的valueOf()方法以取得表示该对象的数值。如果得到的值是NaN,则减法的结果就是NaN。如果对象没有valueOf()方法,则调用其toString()方法并将得到的字符串转换为数值。
    3.5.6 关系操作符
        1)、小于(<)、大于(>)、小于等于(<=)和大于等于(>=)这几个关系操作符用于对两个值进行比较。
            遵循规则:
                如果两个操作数都是数值,则执行数值比较。
                如果两个操作数都是字符串,则比较两个字符串对应的字符编码值。
                如果一个操作数是数值,则将另一个操作数转换为一个数值,然后执行数值比较。
                如果一个操作数是对象,则调用这个对象的valueOf()方法,用得到的结果按照前面的规则执行比较。如果对象没有valueOf()方法,则调用toString()方法,并用得到的结果根据前面的规则执行比较。
                如果一个操作数是布尔值,则先将其转换为数值,然后再执行比较。
        2)、任何操作数与NaN 进行关系比较,结果都是false。
    3.5.7 相等操作符
        1)、ECMAScript 的解决方案就是提供两组操作符:相等和不相等——先转换再比较,全等和不全等——仅比较而不转换。
    3.5.10 逗号操作符
        1)、逗号操作符多用于声明多个变量;但除此之外,逗号操作符还可以用于赋值。在用于赋值时,逗号操作符总会返回表达式中的最后一项。
    3.6.2 do-while语句
        1)、do-while 语句是一种后测试循环语句,即只有在循环体中的代码执行之后,才会测试出口条件。换句话说,在对条件表达式求值之前,循环体内的代码至少会被执行一次。
    3.6.6 label语句
        1)、使用label 语句可以在代码中添加标签,以便将来使用。

原文地址:https://www.cnblogs.com/gaozejie/p/5144179.html