ECMAJavaScript中的基本概念
-
语法,注意点: 区分大小写,标识符命名规则,严格模式。
-
关键字和保留字不能用来做为标识符和属性名。
-
JavaScript的变量是松散类型的,即可以保存任何类型的数据。用var来声明一个变量。
-
JavaScript中的数据类型有六种,并且可以分为基本数据类型和复杂数据类型:
4.1 Undefined 类型:Undefined类型只有一个值,即特殊的undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。一般而言,不需要显示地把变量设置未undefined。
4.2 Null类型:Null类型时第二个只有一个值的数据类型,null。Null值表示一个空对象指针,而这也是使用typeof操作检测符检测null时会返回“object”的原因。只要意在保存对象的变量还没有真正保存对象,就应该明确地让该变量保存null值。这样做不仅可以体现null作为空对象指针的惯例,而且也有助于进一步区分null 和undefined。
4.3 Number类型:用来表示整数和浮点数值。 Number.MAX_VALUE, Number.MIN_VALUE, NaN。有三个函数可以把非数值转化为数值:Number(), ParseInt(), ParseFloat()。第一个可以用于任何数据类型,而后两个则专门把字符串转化为数值。其使用规则也有所区别。
4.4 Boolean类型: Boolean类型有两个字面值:true和false。可以调用Boolean()函数将任何类型的值转化为Boolean值。
4.5 String类型:用于表示由零个或多个16为Unicode 字符组成的字符序列,即字符串。可以用单引号或双引号表示,意义完全相同。String类型包含一些特殊的字符字面量,也叫转义序列,用于表示非打印字符,或具有其他用途的字符。例如:\n,\t,\r,\b,\f,\,',"等等。把一个值转化为字符串有两种方法:ToString()方法和String()方法。Null和undefined值没有ToString()方法。并且String(null) = null; String(undefined) = undefined。
前五种为基本数据类型,下面一种为复杂数据类型。
4.6 Object类型: ECMAScript中的对象其实就是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型的名称来创建。Object的每个实例都有下列属性和方法:
4.6.1 Constructor:保存着用于创建当前对象的函数。
4.6.2 hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。
4.6.3 isPrototypeOf(Object):用于检查传入的对象是否时另一个对象的原型。
4.6.4 toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应。
4.6.5 toString():返回对象的字符串表示。
4.6.6 valueOf():返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。
4.6.7 propertyIsEnumerable(propertyName):用来检查给定的属性是否能够用for-in语句来枚举。 -
操作符
5.1 一元操作符:递增、递减。
5.2 位操作符:~、&、|、^、<<、>>、>>>。
5.3 布尔操作符:!、&&、||。
5.4 乘性操作符:*、/、%。
5.5 加性操作符:+、-。
5.6 关系操作符:>、<、<=、>=。
5.7 相等操作符:==、===、!=、!==。
5.8 条件操作符:v=boolean_expression ? true_vlue : false_value。
5.9 赋值操作符:=。将等号右边的值赋给左侧的变量。
5.10 逗号操作符:,。可以在一条语句中执行多个操作。 -
语句
6.1 if语句
6.2 do-while语句
6.3 while语句
6.4 for语句
6.5 for-in语句
6.6 lable语句
6.7 break和continue语句
6.8 switch语句
6.9 with语句(不建议使用) -
函数,通过函数可以封装任意多条语句,而且可以在任何地方任何时候调用执行。ECMAScript中的函数使用function 关键字来声明,后跟一组参数以及函数体。基本语法如下:
function functionName(arg0,arg1,...argN){
statements
}
ECMAScript函数的参数与大多数其他语言的参数不同。它不介意传递进来多少个参数,也不在乎其数据类型。原因是ECMAScript中的参数在内部是用一个数组来表示的。函数接收到的始终都是这个数组,而不关心数组中包含哪些参数。事实上,函数体内部可以通过arguments 对象来防卫这个参数数组,从而获取传递给函数的每一个参数。也因为如此,ECMAScript函数不能像传统意义上那样实现重载。