《JavaScript高级程序设计》读书笔记(十一):内置对象Global
内置对象
定义:由ECMAScript实现提供的、独立于宿主环境的所有对象,在ECMAScript程序开始执行时出现。
由定义可知开发者不必明确实例化内置对象,它已被实例化了。在ECMAScript-262只定义了两个内置对象,即Global和Math
Global
Global对象是ECMAScript中最特别的对象,因为实际上它根本不存在。
由于在ECMAScript中不存在独立的对象,所有函数都必须是某个对象的方法,如前面提到的isNaN()、isFinite()、parseInt()和parseFloat()等,都是Global对象的方法。
escape()、encodeURI()、encodeURIComponent()、unescape()、decodeURI()、decodeURIComponent()、eval()等都是Global的方法。
escape() && encodeURI() && encodeURIComponent()
这几个方法用于对字符串进行编码。
escape不编码字符有69个:*,+,-,.,/,@,_,0-9,a-z,A-Z
encodeURI不编码字符有82个:!,#,$,&,',(,),*,+,,,-,.,/,:,;,=,?,@,_,~,0-9,a-z,A-Z
encodeURIComponent不编码字符有71个:!, ',(,),*,-,.,_,~,0-9,a-z,A-Z
escape():不建议用,已淘汰
encodeURI():对URL进行编码,示例:
encodeURI("http://www.google.com/a file with spaces.html")
// outputs http://www.google.com/a%20file%20with%20spaces.html
encodeURIComponent():对参数进行编码,示例:
param1 = encodeURIComponent("http://xyz.com/?a=12&b=55")
url ="http://domain.com/?param1="+ param1 +"¶m2=99";
// outputs http://www.domain.com/?param1=http%3A%2F%2Fxyz.com%2F%Ffa%3D12%26b%3D55¶m2=99
unescape() && decodeURI() && decodeURIComponent()
这几个方法用于对字符串进行解码。
eval()
eval()可能是ECMAScript语言中最强大的方法,该方法就像整个JavaScript的解释程序,接受一个参数,即要执行的ECMAScript(或JavaScript)字符串。
示例:
var msg="Hello world";
eval("alert(msg)");//alert "Hello world"
注意,eval()功能很强大,但也很危险,特别在用eval执行用户输入的内容时,可能会被代码注入。
Global对象的所有属性
Global不只有方法,它还有属性,Global对象的所有属性:
属性 |
说明 |
undefined |
Undifined类型的字面量 |
NaN |
非数的专用数值 |
Infinity |
无穷大值的专用数值 |
Object |
Object的构造函数 |
Array |
Array 的构造函数 |
Function |
Function 的构造函数 |
Boolean |
Boolean 的构造函数 |
String |
String 的构造函数 |
Number |
Number 的构造函数 |
Date |
Date 的构造函数 |
RegExp |
RegExp 的构造函数 |
Error |
Error 的构造函数 |
EvalError |
EvalError 的构造函数 |
RangeError |
RangeError 的构造函数 |
ReferenceError |
ReferenceError 的构造函数 |
SyntaxError |
SyntaxError 的构造函数 |
TypeError |
TypeError 的构造函数 |
URIError |
URIError 的构造函数 |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!