Wednesday, June 4, 2008

Eval是什么意思

在JS中有一些功能是很常用的,他们以全局函数的形式提供给用户,这些函数称为内部函数。内部函数实际上是作为一个特殊对象的方法而存在,这个对象名称为Global,是一个内部的固有对象,不能被直接使用。其存在目的:用于存储一些全局的方法和属性。Global对象在脚本引擎初始化时被创建,并使其方法立即可用,调用这些方法和属性时不必也不能通过Global来引用,直接使用其方法和属性即可。

1、使用eval函数执行JS代码
  使用eval,可以将数字字符串转换成数字类型,例如:eval(”3″)将返回数字类型3,事实上,eval接受一个字符串类型的参数,将这个字符串作为代码在上下文环境中执行,并返回执行的结果。
  使用eval有2点注意:1)它是有返回值的,如果参数字符串是一个表达式,就会返回表达式的值。如果不是表达式,没有值,就返回“undefined”。2)参数字符串作为代码执行时,是和调用eval函数的上下文相关的,即其中出现的变量或函数调用必须在eval的上下文环境中可用。eval的一个重要特性是在运行时能改变代码。

eval是把括号内的字符串作为javascript的语句来执行。
例如:

var person1 = new Person();

person1.age = 18;

person1.name = "zxx";

function sayFunc()

{

var x = "age";

eval("alert(person1." + x + ");"); 这里的x是个变量,

eval("alert(person1.name)";); 和 alert(person1.name); 的执行效果是一样的

/*alert(person1[x] + ":" + person1.age);

x = "age";

alert(person1[x] + ":" + person1.age);*/

}





2、使用parseInt和parseFloat将字符串转换为数字
  在使用数字表达式时,应确保所有的操作数都是数字类型的,如果在一个期望使用数字的表达式中使用了字符串或其他类型,就会出现NaN的错误,程序中最常见的就是从字符串类型转换为数字类型,因此可以通过parseInt和parseFloat函数实现转换。
parseInt:该函数是将字符串类型转换为整数
  使用方法:parseInt(String [,radix]),radix是可选的,表示String中数字的进制,默认是10进制,取值范围2到32。
parseFloat:该函数是将字符串类型转换为浮点数(小数)。
  使用方法:parseFloat(String),仅接收一个参数。

3、使用escape和unescape函数进行URL的编码和解码
  escape和unescape函数并不是ECMAScript标准中定义的内置函数,但JS将其作为了一个标准实现。
  escape接收一个字符串,并将其编码为URL可用的形式,即所有的空格,标点,重音符号以及其他非ASCII字符都用%xx编码代替。xx是16进制数,值超过255的用%uxxxx的形式进行编码。unescape则反之。

4、使用isNaN和isFinite函数判断数字的类型
  isNaN和isFinite函数分别用来判断一个变量是否是数字,以及一个数字是否是无穷大或无穷小。对于非数字的变量,使用isNaN返回true,对于无穷大或无穷小的数字,使用isFinite函数将返回false。

No comments: