# 四.内置对象

前言

ECMA-262 对内置对象的定义是“任何由 ECMAScript 实现提供、与宿主环境无关,并在 ECMAScript 程序开始执行时就存在的对象”。这就意味着,开发者不用显式地实例化内置对象,因为它们已经实例化好了

  • ECMA-262 规定 Global 对象为一种兜底对象,它所针对的是不属于任何对象的属性和方法
  • 在全局作用域中定义的变量和函数都会变成 Global 对象的属性
  • 事实上,不存在全局变量或全局函数这种东西,在全局作用域中定义的变量和函数都会变成 Global 对象的属性

# 1.编码相关

# 1.1 decodeURI

解码 URI

# 1.2 decodeURIComponent

解码 URI 组件

# 1.3 encodeURI

编码 URI

# 1.4 encodeURIComponent

编码 URI 组件

# 1.5 URLSearchParams

const href = url + '?' + new URLSearchParams(params).toString()
1

# 2.数字相关

# 2.1 Number

Number 的构造函数

# 2.2 Infinity

表示无穷大的数值

# 2.3 NaN

“非数字”值

# 2.4 isFinite

判断传递的值是否为有限数

# 2.5 isNaN

判断值是否为 NaN

# 3.字符串相关

# 3.1 String

String 的构造函数

# 3.2 parseFloat

解析字符串并返回浮点数

# 3.3 parseInt

解析字符串并返回整数

# 4.Boolean

Boolean 的构造函数

# 5.undefined

特殊值 undefined

# 6.undefined

表示尚未为变量分配值

# 7. null

特殊值 null

# 8.Object

Object 的构造函数

# 9.Array

Array 的构造函数

# 10.Function

Function 的构造函数

# 11.eval

  • 一个完整的 ECMAScript 解释器
  • 接收一个参数,即一个要执行的 ECMAScript(JavaScript)字符串
  • 在严格模式下,在 eval() 内部创建的变量和函数无法被外部访问
eval("console.log('hi')")
//上面这行代码的功能与下一行等价
console.log("hi")
1
2
3

注意:通过 eval() 定义的任何变量和函数都不会被提升,这是因为在解析代码的时候,它们是被包含在一个字符串中的。它们只是在 eval()执行的时候才会被创建

# 12.JSON

  • json 格式化
let newJSON = JSON.stringify(JSON.parse(后端传回来的json数据), null, '\t')
1
  • json校验
function isJSON(str: string) {
    try {
        JSON.parse(str);
        return true;
    } catch (e) {
        return false;
    }
}
const checkJson = (rule: any, value: any, callback: any) => {
    if (isJSON(value)) {
        callback();
    } else {
        callback(new Error('非Json格式数据,请检查后修改'));
    }
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15