预定义函数

坑军之王的头像
坑军之王
266

函数主要分为预定义函数和自定义函数,其中预定义函数指系统内部已经定义好的可以直接调用的函数。在调用预定义函数的时候,可以直接使用函数名+括号进行调用。

接下来进行预定义函数是声明:

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)以外的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的浮点数。

用户评论
评论列表