Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
第二章 词法结构
一、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){}