《JavaScript高级程序设计》(第三版)读书笔记-第三章 基本概念

3.1 语法

   3.1.1 区分大小写

           javascript中的一切都区分大小写。

   3.1.2 标识符

           标识符指变量、函数、属性的名字,或者函数的参数。

           组成:第一个字符必须是字母、下划线或$;剩下的可以是字母、下划线、$或数字。

           按惯例采用驼峰大小写格式,第一个字母小写,剩下的每个单词的首字母大写。

   3.1.3 注释

           单行注释://

           块级注释:/*

                         */

   3.1.4 严格模式

           ECMAScript5引入的概念,对于一些ECMAScript3不确定的行为得到处理,对于不安全的操作抛出错误。

           "use strict"

    3.1.5 语句

           分号结尾。使用代码块更方便安全。

3.2 关键字和保留字

     一组特定用途的关键字。保留字是可能在下几个版本中有特定用途,不能用来当作标识符。

3.3 变量

     JS中变量是松散类型的,可以用来保存任何类型的数据。每个变量仅仅是保存值得占位符而已。

     用var定义的变量变成该变量作用域中的局部变量。不用var会定义为全局变量,但是在严格模式下不用var定义变量会导致错误。

3.4 数据类型

     5种简单数据类型(基本数据类型),:Undefined、Null、Boolean、Number、和String。(实际检测出来的都是小写的。)

     1种复制数据类型:object。

     3.4.1 typeof操作符

            检测给定变量的数据类型,语法typeof message

            "undefined"-如果这个值未定义;

            "boolean"-如果这个值是布尔值;

            "string"-如果这个值是字符串;

            "number"-如果这个值是数字;

            "object"-如果这个值是都对象或者null;

            "function"-如果这个值是函数。

      3.4.2 Undefined类型

             只要一个值undefined。声明未被初始化的变量或者未被声明的变量会默认为undefined,但是未被声明的变量只能执行typeof这一项操作,执行其他会返回错误。

      3.4.3 NUll类型

             只有一个值null。表示一个空对象指针。保存对象的变量还没有真正的保存对象,让该对象保存null值。

      3.4.4 Boolean类型

             值true和false。调用转型函数Boolean()可以把其他类型转换成Boolean值。

      3.4.5 Number类型

              采用IEEE754格式来表示整数和浮点数值。八进制、十六进制、十进制。

              1.浮点数值 科学记数法e代表10

              2.数值范围  Number.MIN_VALUE 大多数游览器为5e-324;Number.MAX_VALUE 大多数游览器为1.79769313486231157e+308

                 如果超出范围Infinity(正无穷)-Infinity(负无穷)isFinite()函数,如果参数位于最小与最大值之间会返回true。

              3.NaN

                 非数值。任何涉及NaN的操作都会返回NaN;NaN与任何值都不相等,包括NaN本身。isNaN()函数检测是不是能转换成数值。

              4.数值转换

                 Number()、parseInt()和parseFloat()。Number()可以用于任何数据类型(null和空字符转换成0),后俩个专门用于把字符串转换成数值(空字符转换成NaN)。

       3.4.6 String类型

              由零个或者多个16位Unicode字符组成,单栓引号无影响。

              1.字符字面量

                 转义序列,非打印字符。当作一个字符来解析。常用的有\n 空格 \r 回车等等。

              2.字符串的特点

                 字符串是不可变的,要变就要销毁原先的字符串,用另一个新的字符串填充该变量。

              3.转换为字符串

                 几乎每个值有toString()方法,返回相应的字符串表现,但是null和undefined没有这个方法。可以含参数代表输出数值的位数。

                 所有值的话可以执行转型函数String()。

         3.4.7 object类型

                对象就是一组数据和功能的集合。

3.5 操作符

         算数操作符、位操作符、关系操作符和相等操作符。

         3.5.1 一元操作符

                只能操作一个值的操作符叫做一元操作符。

                1.递增和递减操作符

                   ++age;--age;age++;age--;后置与前置的区别在于操作在包含他们的语句被求值之后进行。

                2.一元加或减

                  代表正负数。

         3.5.2 位操作符

                 1. 按位非(NOT) ~

                 2. 按位与(AND)&

                 3. 按位或(OR)|

                 4. 按位异或(XOR)^

                 5. 左移(<<)

                 6. 有符号右移(>>)

                 7. 无符号右移(>>>)

         3.5.3 布尔操作符

                 1.逻辑非 !

                 2.逻辑与 &&

                 3.逻辑或 ||

          3.5.4 乘性操作符

                  乘法* 除法* 求模%

          3.5.5 加性操作符

                 + -

          3.5.6 关系操作符

                  < ;>; <= ;>=.

          3.5.7 相等操作符

                  1.相等和不相等 ==;!=。强制转型。null和undefined相等。

                  2.全等和不全等 ===;!==。不转换。null和undefined不全等。

          3.5.8 条件操作符

                  variable=boolean_expression?true_value:false_value;

          3.5.9 赋值操作符

                  =

          3.5.10 逗号操作符

3.6 语句

          3.6.1 if语句

          if(condition){}else{}

          3.6.2 do-while

           do{}while()

          3.6.3 while语句

           while(){}

          3.6.4 for语句

           for(;;){}

          3.6.5 for-in

           遍历属性 for(property in expression){}

          3.6.6 label语句

           添加标签 label:statement

          3.6.7 break 和continue

           控制代码执行,break跳出停止继续之后的代码,continue跳出继续循环,可以与label连用。

          3.6.8 with语句

           简化多次编写同一个对象的工作,严格模式下显示错误。

          3.6.9 switch语句

           switch(){

                case value:statement

                       break: 

               case value:statement

                       break:

               ...

               default:statement 

                } 

3.7 函数

           function声明,不必指定需要返回值,任何函数可以通过return语句后跟要返回的值实现,但是会执行完return后退出,位与之后代码不会被执行。return可以不带        任何返回值,会返回undefined。

           3.7.1 理解参数

                  参数命名只提供便利不是必须的,通过arguments对象来访问参数数组。arguments.length得到多少个实参。

           3.7.2 没有重载

posted @ 2017-05-17 01:08  moon小夫  阅读(49)  评论(0)    收藏  举报