列举出JS的全局函数
JS 的全局函数,也就是可以直接在任何地方不通过对象调用的函数,主要分为以下几类:
值属性:
Infinity
: 表示正无穷大。NaN
: 表示非数字 (Not a Number)。undefined
: 表示未定义的值。null
: 表示空值或不存在的对象。globalThis
: 访问全局对象 (在浏览器中是window
,在 Node.js 中是global
等)。
函数属性:
-
与全局对象相关的函数:
eval()
: 执行字符串形式的 JavaScript 代码。 谨慎使用,存在安全风险。isFinite()
: 检查一个值是否为有限数字。isNaN()
: 检查一个值是否为 NaN。parseFloat()
: 将字符串解析为浮点数。parseInt()
: 将字符串解析为整数。decodeURI()
: 解码 URI。decodeURIComponent()
: 解码 URI 组件。encodeURI()
: 编码 URI。encodeURIComponent()
: 编码 URI 组件。
-
构造函数:
Object()
: 创建一个新的对象。Function()
: 创建一个新的函数。Array()
: 创建一个新的数组。Number()
: 创建一个 Number 对象。String()
: 创建一个 String 对象。Boolean()
: 创建一个 Boolean 对象。Date()
: 创建一个 Date 对象。RegExp()
: 创建一个正则表达式对象。Error()
: 创建一个 Error 对象。Symbol()
: 创建一个新的 Symbol。BigInt()
: 创建一个 BigInt 对象 (ES2020 新增)。
-
其他函数:
escape()
: 对字符串进行编码 (已废弃,建议使用encodeURI()
或encodeURIComponent()
)。unescape()
: 对字符串进行解码 (已废弃,建议使用decodeURI()
或decodeURIComponent()
)。
ES6 新增的全局函数:
Promise
: 用于异步操作。
需要注意的点:
- 严格来说,
parseInt()
和parseFloat()
属于Number
对象的方法,但可以直接作为全局函数使用。 decodeURI()
,decodeURIComponent()
,encodeURI()
,encodeURIComponent()
严格来说属于全局对象的方法,但可以直接作为全局函数使用。- 避免使用
eval()
,因为它会带来安全风险。 isFinite()
和isNaN()
在 ES6 中被加入了Number
对象中,成为Number.isFinite()
和Number.isNaN()
,建议使用新的方法。
这个列表涵盖了常用的全局函数。 一些宿主环境 (例如浏览器) 会提供额外的全局函数,这些函数不属于 JavaScript 语言标准的一部分。 例如,在浏览器环境中,alert()
, prompt()
, console.log()
等都是全局函数,但在 Node.js 环境中则不存在.