第三章
一、把一个值转换成字符串的两种方法:
1.使用每个值都有的toString( )方法。这个方法唯一要做的就是返回相应值的字符串表现。例如:
var age = 11 ;
var ageAsString = age.toString( ) ; //字符串”11”
var found = true ;
var foundAsString = found.toString( ) ; //字符串”true”
2.在不知道要转换的值是不是null或undefined的情况下,还可以使用转型函数String( ),这个函数能够将任何类型的值转换为字符串。String( )函数遵循以下转换规则:
如果值有toString( )方法,则调用该方法并返回相应的结果;
如果值是null,则返回“null”;
如果值是undefined,则返回“undefined”。
var value1 = 10 ;
var value2 = true ;
var value3 = null ;
var value 4 ;
alert(String(value1)) ; //”10”
alert(String(value2)) ; //”true”
alert(String(value3)) ; //”null”
alert(String(value4)) ; //”undefined”
二、数据类型
1.检测给定变量的数据类型:使用typeof操作符。
2.undefined类型:在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。
3.null值表示一个空对象指针,使用typeof操作符检测null值时会返回object。
4.保存浮点数值需要的空间是保存整数值的两倍。
5.NaN的两个特点:任何涉及NaN操作都会返回NaN。NaN与任何值都不想等,包括NaN本身。
三、参数
ECMAScript中的参数在内部使用一个数组来表示的,因此函数不介意传递进来多少个参数也不介意传进来的参数是什么数据类型。
第四章 变量、作用域和内存问题
一、ECMAScript变量包含两种不同数据类型的值:基本类型值和引用类型值。基本类型值不能添加属性,引用类型值可以添加属性和方法,也可以改变和删除其属性和方法。
二、传递参数
在向参数传递基本类型的值时,被传递的值会被复制给一个局部变量。在向参数传递引用类型值时,会把这个值在内存中的地址复制给一个局部变量。
三、延长作用域链
有些语句可以在作用域链的前段临时增加一个变量对象,该变量对象会在代码执行后被移除。在两种情况下会发生这种现象:
try-catch语句的catch块;
with语句。
这两个语句都会在作用域链的前段添加一个变量对象,对with语句来说,会将指定的对象添加到作用域链中。对catch语句来说,会创建一个新的变量对象,其中包含的就是被抛出的错误对象的声明。