语句:类C
关键字:
break else new var case finally return void catch for switch while continue function this with
default if throw delete in try do instanceof typeof
保留字:
abstract enum int short boolean export interface static byte extends long super char final native
synchronized class float package throws const goto private transient debugger implements protected volatile
double import public
变量:
松散类型:
var i = 1; i = "msg";
function test() { msg = "xxx";//将定义全局变量 }
数据类型:
typeof 操作符(不是函数!!!) :
对一个值使用typeof操作符可能返回下列某个字符串:
"undefined" -- 该值未定义
"boolean" -- 布尔值
"string" -- 字符串
"number" -- 数值
"object" -- 对象或null
"function" -- 函数
Undefined 类型
只需记住一点:对未初始化和未声明的变量执行typeof操作符,都返回"undefined"。
Null类型
只有一个值null。
typeof null//"object"
alert(null == undefined);//true
null与undefined之间的相等操作尽管总是返回"true",但两都用途完全不同。
无需将任何变量的值显示设为undefined,但可以对变量设为null,表示将保存对象。
Boolean类型
只有两值:true和false。
其它类型与该类型的转换:
String 任何非空字符(true) ""(false)
Number 任何非零数字值(包括无穷大)(true) 0和NaN(false)
Object 任何对象(true) null (false)
Undefined n/a(true) undefined(false)
在if判断中,以上值将自动转换。
Number类型
规则字面量大多与Java类似,但:
永远不要测试某个特定的浮点数值,如 if( a + b == 0.3) //永远不要做这样的测试!!!!
Number.MIN_VALUE 最小值,大多浏览器中为5e-324。
Number.MAX_VALUE 最大值,大多数浏览器中为1.7976931348623157e+308。
超出范围将自动转换为 Infinity(无穷,分正负)
可用isFinite()函数测试是否位于数值范围间。
NaN(Not a Number),即非数字。
非同寻常的特点:
1。任何涉及NaN的操作都返回NaN
2。NaN与任何值都不相等 alert(NaN == NaN) //false
isNaN()函数:
接受任意对象,会尝试转换成数值,不能被转换成数值的值,返回false。
如:alert(isNaN(NaN))//true
alert(isNaN(10)) //false
alert(isNaN("abc")) // true
alert(isNaN(false))) // false
对于对象类型的测试:先尝试valueOf() 失败 ? -> toString();
parseInt,parseFloat以及转换,看书!!
String类型
类java : 字面量,不可变,toString()。
例外:
'123' 与 "123"定义字符串,无区别。
null与undefined无toString();
toString(),可传参数。调用数值的toString()方法,可以输出二进制,八进制,十六进制,及其它任何有效进制。
num.toString(2);
num.toString(8);
Object类型
var o = new Object();
var o = new Object;//有效,但不推荐
var o = {};
概念与java中Object类似,是所有对象类型的基类。
constructor -- 保存着用于创建当前对象的函数,对前例而言 就是 Object();
hasOwnProperty(propertyName) -- 检测当前对象是否存在访属性(非存在于实例原型中),参数必须为字符串。
isPrototypeOf(object) -- 传入的对象是否是另一个对象的原型。
propertyIsEnumerable(propertyName) -- 检查给定属性是否能使用 for-in语句枚举。规则与hasOwnProperty一致。
toString() -- ....
valueOf() -- ....。
例外:
IE中,只有开发人员自定义的对象才继承自Object,所用BOM,DOM与这里介绍的不同。
操作符
大多与c,java中的规则类似。但
特别的:
++,-- :
可用于非数字类型,规则如下:
用于非数字类型时,会将该类型转换成数字再运算。
== ,=== :
== :不同类型的变量也可以比较,变量间会强制转换,会尝试转换成数字再比较。
对于对象类型则是是否指向同一对象。
=== : 不进行类型转换的比较。不同的数据类型比较,一定不相等。其它规则同 == 。
with : with (expr) statement 将代码的作用域设置到一个特定对象中。