JavaScript 高级程序设计_chapter3 基本概念

1、js中使用变量,一般先声明后初始化,声明后不初始化,该变量的会默认为undefined。在函数内部,虽然可以忽略var操作符可以定义全局变量,但是不推荐该做法,因为在局部作用域中定义的全局变量很难维护,而且如果有意忽略了var,也会由于相应变量不会马上就有定义而导致不必要的混乱。


2、ECMAScript中定义了6种数据类型:Undefined,Null,Boolean,Number,String, Object。由于ECMAScript 数据类型具有动态型,因此的确没有必要再定义其他数据类型的必要了。


3、函数在ECMAScript中是对象,而不是一种数据类型,因此可以使用typeof来区分函数和其他对象。 alert(typeof(test))返回值为function,而其它对象则返回上述6种某一个类型。


4、对未初始化和未声明的变量执行typeof操作都返回undefined值,这个结果在逻辑上有一定的合理性,即使未初始化的变量会自动被赋值undefined值,但显示地初始化变量仍然是明智的选择,这样可以检测到被检测的变量还没有被声明,而不是尚未初始化。


5、ECMAScript中的switch语句有自身的特色,switch中可以使用任何数据类型,不仅仅使用数值,在case中不一定是常量,可以是变量,表达式。


6、函数中的参数可以通过arguments对象来获取,比如第一个参数可以使用arguments[0]得到;若想获得参数的个数,可以使用arguments.length获得。


7、若函数名相同,在函数体中通过判断arguments.length来处理不同逻辑,模仿函数重载。若函数名相同,参数也相同,后定义的函数会覆盖之前定义的函数。


8、ECMAScript中没有函数签名的概念,因为其函数参数是以一个包含零或多个值的数组的形式传递的,可以向ECMAScript函数传递任意数量的参数,并且可以通过arguments对象来访问这些参数。由于不存在函数签名的特性,ECMAScript函数没有函数重载。

猜你喜欢

转载自blog.csdn.net/py_tamir/article/details/79122045