第一章 值、变量、控制流程

1. 所有数据实质上都是由bit序列构成的。bit序列通常是由0和1排列组合而成。它们在计算机内的形式就如一个高电荷或一个低电荷、一个强信号或弱信号,或光盘表面的一个亮点或一个暗点。

  1.1 值(JavaScript 里有6种基本类型的值:number、string、Boolean、object、function、undefined。)

    1.1.1 数字(number)

      ① 标准的JavaScript数字描述是64位浮点型值。

      ② 1个bit存储数字符号(正负号),11个bit存储数字的小数点位置,剩余52个bit存数(任何小于2^52的数)。

      ③ 整数计算通常十分精确,但小数计算精度不高(无限小数无法表示),因此应将小数视为近似值而不是精确值。

    1.1.2 算数

      ① 运算符:+、-、*、/、%(余数)

    1.1.3 字符串(string)

      ① string 用于表示文本,用引号(单引号和双引号均可,但需前后一致)将内容括起来。

      ② 转义字符:\n(换行)、\t(一个tab字符)等。

      ③ 字符串可用“+”连接。

    1.1.4 一元操作符

      ① typeof :产生一个字符串值,该字符串命名给定值的类型。

    1.1.5 布尔值、比较和布尔逻辑

      ① 布尔类型只有两个值:true 和 false。

      ② 字符串是按unicode标准比较。

      ③ 逻辑运算符:&& 逻辑与,|| 逻辑或,!非运算符。

    1.1.6 表达式与语句

      ① 任何值都可以看成表达式(运算结果、数值等)

      ② 语句由表达式构成,以“;”结尾。

  1.2 变量

    1.2.1 关键字与保留字(不可作为变量名)

      abstract  boolean  break  byte  case  catch  char  class  const  continue  debugger

      default    delete  do  double  else  enum  export  extends  false  final  finally  float

      for  function  goto  if  implements  import  in  instanceof  int  interface  long  native

      new  null  package  private  protected  public  return  short  static  super  switch

      synchronized  this  throw  throws  transient  true  try  typeof  var  void  volatile  

      while  with

  1.3  环境:在给定时间存在的变量和变量值的集合叫环境。

    1.3.1 函数:彼岸准环境提供的很多值都是函数类型,函数是包含在值中的一段程序(调用或应用、形参、实参)。

    1.3.2 prompt 和 confirm

      ① confirm 函数:让用户选择 OK/Cancel 问题。该函数返回布尔值:如果用户单击OK,返回true;如果单击Cancel,返回false。

      ② prompt 函数:用于询问一个开放式问题。第一个参数是问题,第二个参数是用户需要输入文本的开头部分。

    1.3.3 print 函数:将参数显示在未指定的文本输出设备上。(注意:Web浏览器提供的JavaScript上下文环境里不包含该函数。)

    1.3.4 修改环境:理论上可以给任何变量赋一个新值,这样做很有用也很危险。若给print函数赋值为8,它就不再是一个函数,而且也不能再用于显示信息。(第7章将讨论如何避免发生重定义变量的偶然事件。)

  1.4 程序结构

    1.4.1 条件执行  if (...) {...} else {...}

      ① isNaN(...)函数:判断传入的参数是否为NaN。

      ② if (...) {..}

      ③ if (...) {...} else {...}

      ④ if (...) {...} else if (...) {...} else if (...) {...} else {...}

    1.4.2 while 循环与 do 循环

      ① while (...) {...}

      ② do {...} while (...) ;  (与While 循环区别:do while 循环体至少执行一次。)

    1.4.3 缩进代码:作用是突出代码结构,便于阅读。缩进方式:2个空格、4个空格、Tab键等。

    1.4.4 for 循环:for ( i=1;i<10;i++ ) {...}    (声明变量;检测循环;更新循环状态)

    1.4.5 跳出循环

      ① break 关键字:立即退出当前循环,继续执行后面的程序。  

    1.4.6 简写:+=、-=、*=、++、--等。

    1.4.7 switch 函数

      switch (...) {

        case "...":

          ....

          break;

        default:

          ...

          break;

      }

    1.4.8 大小写:变量首字母大写(驼峰)或下划线连接。

    1.4.9 注释:

      ① // 注释一行

      ② /* 多行注释 */

  1.5 进一步认识类型

    1.5.1 Undefined 值

      ① 声明变量允许不赋值,变量值为:Undefined。

      ② null 与Undefined 的区别主要是理论上。

      ③ null == undefined 返回 true

    1.5.2 自动类型转换

      ① 对不同类型的值进行比较,将一个类型的值转化成另一个类型的值。

        a.  false == 0;  true

        b. "" == 0;   true

        c. "5" == 5;  true

      ② 当遇到null 或 undefined,只有在两边都是null 或 undefined 才返回true。

      ③ 判断一个变量是否引用的是false 值:将字符串或数字转化成布尔值,0、NaN 和空字符串转化成 false。其他所有的值都会转化成 true。

      ④ 两个值精确相等(包括类型比较。不进行类型转换,直接比较):===

      ⑤ 两个值不精确相等:!==

      ⑥ 数字0、字符串""、null、undefined、false、都会转换成false。

    1.5.3 自动类型转换的风险

      ① 还有其他情况导致类型转换,例如:非字符串连接字符串(转成字符串)、数字与字符串乘法(转成数字)。

      ② 对 NaN 所有算数操作结果都是 NaNNaN == NaN 返回false。检查一个值是否为NaN 可用函数 isNaN 函数。

    1.5.4 进一步了解 && 和 ||

      ① || 的真正作用:首先检查左边的值,若该值可以转化成布尔类型并且值为 true,就返回左边的值;否则返回右边的值。若离岸边参数都是布尔值,要自己检查下它是否运行正常。

      ② && 与|| 相似,但形式相反。当左边的值转换的布尔值是false,返回该值;否则返回右边的值。

      ③ && 和 || 另一个重要属性是:只在必要时才执行表达式右边的值。

      

posted @ 2014-09-19 09:05  被盗的小偷  阅读(104)  评论(0)    收藏  举报