Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句

时间:2022-03-05 01:44:28

第二章 词法结构

一、HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写;在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写。

二、javascript使用分号(;)作为语句结束符,如果单行也可以解析成正确语句,可以省略分号。有些程序员习惯在语句前加上一个分号,这是为了避免前面语句因丢失分号造成错误。

第三章 类型、值和变量

一、javascript数据类型分为原始类型和对象类型。原始类型包括数字、字符串和布尔值,其中null和undefined是两个特殊原始值。除了原始值就是对象了。

对象是属性的集合,每个属性都由“名/值”对构成;数组是特殊的对象,表示带编号的值的有序集合。函数也是特殊对象

二、常用Math对象的属性和方法:

    Math.pow(a,b);//a的b次幂Math.pow(2,3)表示2的3次幂;Math.pow(2,1/3)表示2的立方根

    Math.sqrt(a);//a的平方根

    Math.round(a);//四舍五入

    Math.ceil(a);//向上求整

    Math.floor(a);//向下求整

    Math.abs(a);//绝对值

    Math.max(a,b,c);//求最大值

    Math.min(a,b,c);//求最小值

    Math.random();//生成0到1.0的伪随机数

三、Number中属性NaN非数值,和任何值都不相等,包括自身;所以没办法通过x==NaN来判断变量x是否是NaN,应当使用x!=x来判断,当且仅当x为NaN的时候,表达式结果才为true。函数isNaN()的作用与此类似,如果参数是NaN或者是一个非数值,则返回true。还有个类似函数isFinite(),如果参数不是NaN、Infinity或-Infinity的时候返回true。

第四章 表达式和运算符

一、in运算符:左操作数是字符串或可以转换为字符串,右操作数是一个对象。如果右操作数的对象拥有一个名为左操作数值的属性名,表达式返回true

    如:var point = { x:1, y:1 };  "x" in point;//true  "z" in point;//false

    如果是数组对象,使用in表达式如:var arr=[1,4,7];0 in arr;//true  '1' in arr;//true  3 in arr;//false  属性名判断为索引了

二、eval()函数

三、delete一元运算符,删除对象属性,如果是数组,delete arr[2],删除数组元素,且数组长度不变

第五章 语句

一、for/in

  for (variable in object)

    statement

执行for循环时,首先判断object,如果不为null或undefined,执行后续代码。在执行过程中,会依次将object属性名赋值给variable,这样就可以通过以下方式将对象属性名复制到数组中

  var o={x:1,y:2,z:3};

  var a=[],i=0;

  for(a[i++] in o){}