猫叔:Fighting!!!

【学习笔记】JavaScript——变量、常量、保留字、运算符与表达式、语句

变量、常量、保留字

变量Variable:一种特殊的标识符(identifier)。存储信息(值或表达式)的容器。

       【与常量Constant相比,变量存储的数据,可根据程序需要而改变;JS中的变量为notype,及弱类型】

       1)命名规则:由Unicode字符串和数字组成。首字符为:字母、下划线、美元符号$。其后的还可用数字。

       2)变量生存期(有效范围):全局(global)变量、本地(local)变量。【变量没有语句块限制】

              前者用于整个文档中JS代码运行结束止。后者用于函数及其嵌套的子函数中、但不能用于父级或其他函数。

常量Constant:不变的值。【IE不支持const】

       1) const  constantName  =  value1;

              常量名首字符为字母或下划线,其后可有数字。 value1为直接量或表达式。

       2)1个const关键字可定义1个或多个常量。

       3)内置常量:JS中Infinity表无穷大的数值,-indinity表无穷小。NaN表非数值。

保留字:JS中有特殊含义的标识符。不能用于变量命名。

       保留字大多数为关键字Keywords,还有一些为扩展准备而不建议使用的特性关键字(Future Keywords)

 

 

运算符与表达式

运算符Operator:操作变量或值。6-40种

       9个算术Arithmetic: + - * / 模% 递增++ 递减-- 正号+ 取反-

              【addition/subtraction/multiplication/division/modulus/increment/decrement/?/decrement

       1个字符串String:+

       3个逻辑Logical:逻辑与Logical AND && 逻辑或Logical OR || 逻辑非Logical NOT!

       8个比较Comparison:>   <    >=   <=   ==   !=   等同===   不等同!== 【比较运算符在两操作数间比较,返回布尔值

              【greater than/less than/g t or q/l t or q/equal/not equal/strict equal/strict not equal

              【==比较时会隐式转换,===比较时不允许转换。

       7个逐位Bitwise:逐位与&   逐位或|   逐位非~   逐位异或Bitwise XOR^ 【2值相同返0,否则1

                                   Left Shift左移<<   带符号右移>>   0补足右移>>>  

              【逐位运算符 将各进制的操作数转换为32位的二进制数,并逐位/按位进行操作后返回十进制数。

              【逐位运算符又分为:逐位逻辑运算符、逐位位移运算符。

       12个赋值Assignment:①普通:= ②带操作:+=   -=   *=    /=    %=    &=    ^=    |=    <<=    >>=   >>>=

 

特殊运算符:12种

       条件conditional:    boolCondition?value1:value2   (JS中唯一的三元运算符)

       逗号comma:(,)JS最简单的运算符,用于分割2个操作数。

       delete:删除成功返回true,否则false。

              【删除变量:不能删除变量中var定义的变量。删除未定义变量返true。删除后不能访问。

              【删除对象:不能删除对象中var定义的对象。删除未定义对象返true。删除后不能访问。

              【删除对象属性:删除不存在属性返true。返问已删除/不存在对象属性返undefined。

              【删除数组元素:不管是否var定义都能删除。删后数组长度不变。删后元素仍能访问,值为undefined

       in:判断某属性/元素是否属于某对象/数组。 propNameOrNumber  in  objectName

              【propNameOrNumber为属性名时,是字符串或能转为字符串的类型。

              【propNameOrNumber为数组的下标时,是数字型或能转为数字型的类型。

       instanceof:判断对象是否为某对象类型。  objectName  instanceof  objecrType

              【objectName为对象名。objectType为对象类型,如Date/Arrayr等。Object是所有对象的类型。

       new:一元。创建自定义/内置对象。如Array、Boolean、Function、Image、Option、RegExp等。

                     objectName = new objectType(param1  [,param2]  ….  [paramN] )

       this:可在一个方法中调用当前对象。this  propertyName

       typeof:一元。返回字符串 表示操作数类型。typeof operand、typeof (literal)  

              【对直接量:返回结果类似变量。

                            typeof([1,2,3])                                          返object

                            typeof({height:10,width:20})            返object

                            typeof(function(a) {return -a})        返function

              【对关键字:null返object。undefined返undefined。

              【对对象属性:返回结果,与属性值相关。typeof( location.host )返string。typeof( Math.PI )返nunber

※ 操作数为JS 核心对象(Array/Boolean/Date/Error/Function/Number/String/Object等),返回function

※ 操作数为BOM中的对象/方法(window/navigator/frames/location/history/document/screen),返回object

       void:一元。计算某表达式/执行某方法等,不会有返回值。常用于a链接,打开新窗口而原窗口不变。

       数组元素存取[ ]:二元。可读写数组元素值。get = array[ number ]     array[ number ] = set

                                          对象可看成一个数组:get = object[ propretyName ]  object[ propretyName ]=set

       函数调用( ):操作数有传递参数决定。用于调用函数/对象方法。

       对象存取 .:二元。可读写对象属性。get = objecct . proprety;   object . proprety = set;

操作数Operant:运算符处理的数据。

       由操作数个数,运算符分一元Unary、二元Binary和三元Ternary。【在JS中只有条件运算符是三元运算符】

 

表达式Expression:可为直接量、变量、常量、也可以是(运算符、操作符和标点符号)组成的语句。

       【直接量:值(如:1233、“abc”、true、[1,2,5]、{width:100,height:200} ….)】最后1个为对象直接量

 

 

语句

5类:选择语句、循环语句、跳转语句、异常处理语句、其他语句。

语句块:JS中的作用域是整个函数中,与大括号包围的语句块无关。

选择语句:2种:   if  、 switch

       if语句、if…else语句、if…else if语句。可嵌套。

       switch语句:在执行多个分支中,优于if语句(if每个分支需检测一次变量值)。

              ※ switch语句中的case语句,需要一个终止(否则继续执行后面的case语句),如break。

循环语句:for  、 while  、 do…while  【JS中的循环语句不提供执行分支,而是反复执行

       逗号运算符与for语句结合:for(var x=0,y=3;x<y;x+=2,++y)

对象操作语句: for…in 、for each in

for…in:遍历数组元素对象属性。for( 变量 in 数组/对象 ) { … }

       (while和for…in的变量 在循环语句外 声明)通过将所有 元素/属性 反复赋值给 变量。

       注意:遍历时,若对象存在方法,此语句会将方法赋值给变量。

         对象的大多数未定义的内置属性及覆盖内置属性的方法,将不被遍历。如String的length属性和replace()方法

         再循环体中删除的属性,将不被遍历。

 with语句:用于简化引用代码。

 

跳转语句:label语句、break语句、continue语句。

       跳转语句必须放在循环体中。故lable语句需放在循环语句之前才有作用。

       label语句语法:lableName:

       break语句语法:break;或break lable;不能跳转到其他循环语句前的lable中。

       continue语句:只能跳出当前循环

 

异常处理语句:throw语句(抛出)、try…catch语句(捕获)、finally语句。

       几个概念:异常exception:表出错的信息。抛出throw:表异常状况的信息。捕捉catch:处理抛出的异常。

       异常类型:

JS

异常

Error:

普通异常。

EvalError:

使用eval()出错。

RangeError:

数字超合法范围。

ReferenceError:

读取不存在变量。

SyntaxError:

语法错误。

TypeError:

类型错误。

URIError:

URI编码或解码出错。

DOM异常

DOMException

DOM对象异常。

EventException

:事件异常。

RangeException

:范围异常。

 

       throw语句:可抛出异常对像或其他类型对象。如throw new Error(“出错了”);或throw -1;或tw“xx”;

       try...catch语句:try statement  catch(ex) statemrnt【变量ex为throw抛出的Error对象。

       finally语句:不能单独执行,需与try语句合作。

 

其他语句:6种。空语句(排版/充当占位符)。注释语句(//或/**/)。var语句(定义变量)。const语句(定义常量)。function语句(定义函数)。return语句(只用于函数体,返回一个值)。

 

posted @ 2013-01-21 19:56  庄丶大虾  阅读(15122)  评论(0编辑  收藏  举报