函数主要分为预定义函数和自定义函数,其中预定义函数指系统内部已经定义好的可以直接调用的函数。在调用预定义函数的时候,可以直接使用函数名+括号进行调用。
接下来进行预定义函数是声明:
2.1 eval()函数
eval( ) 函数可以将传入的值作为JavaScript代码进行执行。
eval(String)
参数
String是一个表示 JavaScript 表达式、语句或一系列语句的字符串。表达式可以包含 变量 与 已存在对象的属性。
返回值
其返回值为返回字符串中代码执行的结果,如果返回值为空,则返回undefined。
特别注意:
eval()函数实际应用方面能不用就不用,其函数拥有等同于管理者的权限,而前端代码由于开放性,谁都可以进行代码的查看,经过分析可以明白JavaScript代码的具体执行逻辑。此时可以使用eval()代码进行操作,为网站注入一些恶意代码,这种操作被称为XXS攻击。
2.2 escape()函数和unescape()函数
已废弃: 该特性已经从 Web 标准中删除,虽然一些浏览器目前仍然支持它,但也许会在未来的某个时间停止支持,请尽量不要使用该特性。在后文将提出响应的替换函数及对应函数的使用方法。
他们两个是一对互逆函数,前者将字符串转换为%AA或者%UUUU的形式。其中%AA指的是字符ASCII编码的16进制的形式,%UUUU指的是非ASCII字符(如汉字)的Uniccode码的形式。
后者将前者的操作返回。
escape(str)
unescape(str)
参数
str 在escape()函数中是待编码的字符串
在unescape()函数中是已经编译过的字符串
返回值
escape()函数的返回值为一个已经转换过的字符串
unescape()函数的返回值为一个未转换过的字符串
代替函数
escape()函数替换函数
encodeURI()
将特定字符的每个实例替换为一个、两个、三或四转义序列来对统一资源标识符 (URI) 进行编码 (该字符的 UTF-8 编码仅为四转义序列)由两个 "代理" 字符组成)。
encodeURI(URI)
参数
URI 一个完整的URI,类型为字符串
返回值
一个新字符串, 表示提供的字符串编码为统一资源标识符 (URI)。
补充说明
encodeURI 会替换所有的字符,但不包括以下字符,即使它们具有适当的UTF-8转义序列:
类型 |
包含 |
保留字符 |
; , / ? : @ & = + $ |
非转义字符 |
字母 数字 - _ . ! ~ * ' ( ) |
数字符号 |
# |
encodeURIComponent()
encodeURIComponent()函数通过将一个,两个,三个或四个表示字符的UTF-8编码的转义序列替换某些字符的每个实例来编码 URI (对于由两个“代理”字符组成的字符而言,将仅是四个转义序列) 。
encodeURIComponent(str)
参数
str URI的组成部分,类型为字符串
返回值
参数被编码后的新的字符串
补充说明
在上方对encodeURI()函数的说明中,存在一个表格,在这个表格中的非转义字符不会被encodeURIComponent()所转换,其余字符都会被转换。
unescape()函数替换函数
decodeURI()
decodeURI()是encodeURI()函数的互逆函数,作用是将encodeURI()函数编码过的字符串转换回去。
decodeURI(encodeURI)
参数
encodeURI 一个完整的编码过的URI,类型为字符串
返回值
一个编码过的URI的对应未编码版本的字符串
特殊输出
当encodedURI 包含无效字符序列时,引发URIError(“格式错误的URI序列”)异常。
decodeURIComponent()
decodeURIComponent() 方法用于解码由 encodeURIComponent 方法或者其它类似方法编码的部分统一资源标识符(URI)。
decodeURIComponent(encodeURI)
参数
encodeURI 经过编码的部分URI,数据类型为字符串
返回值
一个解码后的统一资源标识符(URI)字符串,处理前的URI经过了给定格式的编码。
特殊输出
当该方法使用不当时,将会抛出一个URIError(“格式错误的URI序列”)异常。
2.3 isNaN()&isFinite()函数
isNaN()函数用来确定一个值是否为NaN(非数值)
isFinite()函数用来确定一个变量是否有限
isNaN(value)
isFinite(testValue)
参数
value 要被检测的值,通常为字符串,没有限制
isFinite 用于检测有限性的值
返回值
isNaN() 如果传入的参数为数字的话返回false,否则一律为true
isFinite() 如果传入的参数为NaN、±无穷,返回false,否则为true
补充说明
如果isNaN函数的参数不是Number类型, isNaN函数会首先尝试将这个参数转换为数值,然后才会对转换后的结果是否是NaN进行判断。
如果是对空字符串进行判断的话,isNaN()会将空字符串强制转换为“0”,布尔值会强制转换为“1”
2.4 parseFloat()&parseInt()函数
parseFloat()函数将一个值转换为浮点数的值
parseInt()函数将一个值转换为指定基数的十进制整数
parseFloat(string)
parseInt(string,radix)
参数
String 在parseFloat()中是值需要被转化值,数据类型为字符串类型
在parseInt()中是要被解析的值,一般情况为字符串类型,如果不是字符串类型的话,会将其值使用toString()转化为字符串类型的值,且字符串开头的空格将会被忽略
radix
这个值仅在parseInt()函数中应用,用来定义String的值所代表的进制,如radix=16就是说明String中的值看作为16进制下的数。当然,这个数值仅在需要对前面字符串进行补充说明的时候才会进行使用。如果在其他值作为String的时候使用的话,倒也不是不能执行,就是会使得结果返回为“NaN”了。
可选择的数值为2-36,当然默认值不是10。
返回值
parseFloat() 返回值为传入的参数被转化的浮点数,数值类型为数值型
如果传入的参数不能转化为数字的话,则会返回NaN
parseInt() 传入参数转化的十进制数字,数据类型为数值型
如果传入参数无法转化为数字的话,返回NaN
补充说明
parseFloat()函数在传入参数的时候,如果存在遇到了正号(+)、负号(- U+002D HYPHEN-MINUS)、数字(0-9)、小数点(.)、或者科学记数法中的指数(e 或 E)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。