首页 > 代码库 > 《javascript高级程序设计》笔记(三)

《javascript高级程序设计》笔记(三)

一、语法

     标示符:第一个字符必须是字母、下划线或美分符号。

                不能把关键字、保留字、true、false、null作为标示符。

     严格模式

             "use strict"

二、关键字和保留字

     break      delete function    return   typeof 
     case        do      if              switch  var 
     catch       else    in             this     void 
     continue   false  instanceof  throw while 
     debugger finally new           true   with 
     default     for    null            try    

 

   abstract  double    goto          native     static 
   boolean  enum      implements package  super 
   byte      export     import        private    synchronized 
   char      extends   int             protected throws 
   class     final         interface     public      transient 
   const    float        long           short       volatile   

 

三、变量

      不初始化会保存undefined值

      用var定义的是局部变量

 

四、数据类型

      typeof返回数据类型,unll会返回object,因为unll被认为是空的对象引用。

      undefined

      null   最好把将来用来保存对象的变量初始化为null

      boolean      

      number    八进制0开始 十六进制0x        

                     isFinite()函数  负无穷  Number.NEGATIVE_INFINITY    正无穷Number.POSITIVE_INFINITY

      NaN            表示错误的数值,与自身也不相等  

                       isNaN()函数:判断参数是否不是数值

     数值转换      Number()  忽略字符串前导的0——"011"→"11" 十六进制转换成十进制  浮点保留

                                     如果是对象,先用valueOf(),如果返回NaN,再调用toString()

                      parseInt()  忽略前导空格,第一个不是数字或负号就返回NaN,符合就一直解析直到遇到非数字或结束

                                      ECMAScript5 070得到70 ,加上第二个参数作为基数

                                      遇到小数点也会就停止

                      parseFloat() 遇到第一个小数点不停止

      string        \\    \‘     \"

                       \n  换行  \t制表  \b退格  \r 回车  \f进纸    

                       length属性

                       toString()方法  可以传递基数

                       String()方法   值是null、undefined,返回null、undefined

                       用+和""加起来可以转换为字符串

     Object      

五、操作符

       ++   --

       +      -

      ~按位非  操作数的负值减1

      &     |     ^按位异或

      <<            >>有符号

      <<<        >>>无符号

      !   &&  ||

      *          /     %

      +   如果只有一个操作数是字符串,另一个操作数也转换为字符串  每个加法是独立执行的

      -   

      >    <    >=   <=      大写字母的字符编号比小写字母小    toLowerCase方法比较

                                     "23" < "3"  字符串比较的是第一个

      ==   !=                   先转换操作数

                                      null与undefined相等

                                      如果两个操作数都是对象,则比较它们是不是同一个对象。

    ===   !==               不转换

    ? :

    =

    ,

六、语句

   if

   do while

   while

   for

   for  in  枚举对象的属性

 for (var propName in window) {             document.write(propName);             document.write("<br />");        }

      每次循环将window对象中存在的一个属性名赋值给propName,顺序不可预测

 

 

   label   添加标签,与循环语句配合

   break  continue

 var num = 0;                outermost:        for (var i=0; i < 10; i++) {             for (var j=0; j < 10; j++) {                if (i == 5 && j == 5) {                    break outermost;                }                num++;            }        }                alert(num);    //55

 

with   将代码的作用域设置到一个特定的对象。

with(location){            var qs = search.substring(1);            var hostName = hostname;      //unavailable when viewing from a local file            var url = href;        }

每个变量被认为是局部变量,如果在局部环境找不到该变量的定义,就会查询location对象中是否有同名的属性。如果发现了同名属性,则以location对象属性的值作为变量的值。

 

   switch   不发生类型转换

七、函数

     arguments对象访问参数 可以和命名参数一起用

     没有重载,定义了两个名称相同的函数,则该名字只属于后定义的函数。

《javascript高级程序设计》笔记(三)