## 一、eval()函数:用于将表达式转换为一个变量名或者对象名。
~~~
var x3 = "good";
var x = 3;
var y = eval("x"+x);//获得变量x3,即y=x3
alert(y);
~~~
运行结果:
![](https://box.kancloud.cn/2016-08-30_57c54ec4a844e.jpg)
传入的string参数不能缺少,否则出错;eval()函数会执行string中包含的JS代码。
## 二、转义函数
2.1 escape()和unescape()函数:前者以字符串为参数,并以URL格式进行编码。所有空格、标点、重音符以及其他非ASCII字符杜都用%xx十六进制序列编码代替,例如,空格以%20代替;unescape()则相反,将URL转为字符串。
~~~
document.write("编码前:Hello {[World]}<br/>");
var str1 = escape("Hello {[World]}");
document.write("escape()编码:");
document.write(str1+"<br/>");
document.write("unescape()解码:");
~~~
~~~
document.write(unescape(str1)+"<br/>");
~~~
运行结果
;![](https://box.kancloud.cn/2016-08-30_57c54ec4f1eee.jpg)
escape()和unescape()处理非ASCII字符会出错,不能用于对Unicode字符编码,已不推荐使用,可以用encodeURI()和decodeURI()代替。
2.2encodeURI()和decodeURI():前者将文本字符串编码为一个有效的统一资源标示符(URI)。后者则将URI转为原始的字符串。
不能用encode()处理的字符:;、,、/、?、:、@、&、=、+、$、英文字母、数字、-、_、.、!、~、*、‘、(、)、#,此函数也不能独自形成HTTP GET或者POST请求,因为&、+、=都不会被编码,若要向服务器发送数据,可以用encodeURIComponent()和decodeURIComponent()
2.3 encodeURIComponent()和decodeURIComponent():跟encodeURI()和decodeURI()一样的功能,但是encodeURIComponent()可以用来发送HTTP GET或者POST请求。encodeURIComponent()不能转义的字符有:英文字母、数字、-、_、.、!、~、*、‘、(、)
## 三、转换函数:
3.1 parseFloat():将字符串转为浮点数,并返回字符串中的数字,知道非数字部分。若字符串不是以数字开始,则返回NaN,有效整数前面的空白和其后的非数字部分被忽略。
ex:parseFloat("-2")==>返回-2;parseFloat("123.78ad")==>返回123.78;parseFloat("df123ad")==>f返回NaN;parseFloat("123.6765.435")==》返回123.6765
3.2 parseInt(string,[radix]):将字符串转为整数,若不能转换则返回NaN,radix为可选参数,规定以radix进制返回,合法值是2~36。有效整数前面的空白和其后的非数字部分被忽略。
ex:parseInt("3.5")==>返回3;parseInt("f")==>返回NaN
## 四、判断函数
4.1 isFinite():查看某个数字是否是有限数,是则返回true,反之返回false;
4.2 isNaN():查看某个数字是否为数字,不是则返回true,反之返回false.
- 前言
- 一
- 二:变量
- 三:数据运算
- 四:流程控制
- 五:内建的全局函数
- 六:自定义函数
- 七:面向对象编程(OOP)
- 八:静态成员、静态类、枚举、重载和覆盖
- 九:原型链本质论
- 十:ECMAScript 5 增强的对象模型
- 十一:处理字符串---String类和正则表达式
- 十二:数组、多维数组和符合数组(哈希映射)
- 十三:处理日期和时间
- 十四:JavaScript内建类
- 十五:BOM之源---window对象
- 十六:BOM之源---BOM基本应用
- 十七:BOM新成就(1)--客户端存储数据(Storage实现)
- 十八:BOM新成就(1)--客户端存储数据(Web SQL DataBase实现)
- 十九--HTML5 DOM新标准---处理文档元信息和管理交互能力
- 二十---XMLHttpRequest和AJAX解决方案