5.7 单体内置对象

  ECMA-262对内置对象的定义是:“有ECMAScript实现提供的,不依赖于宿主环境的对象,这些对象在ECMAScript程序中执行之前就已经存在了。”意思就是说,开发人员不必显式的实例化内置对象,因为它们已经实例化了。

  Global对象

  Global(全局)对象可以说是ECMAScript中最特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的。ECMAScript中的Global对象在某种意义上是作为一个终极的“兜底儿对象”来定义的。换句话讲,不属于任何其他对象的属性和方法,最终都是它的属性和方法。事实上,没有全局变量或全局函数;所有在全局作用域中定义的属性和函数,都是Global对象的属性。

  URL编码方法

  Global对象的encodeURI()和encodeURIComponent()方法可以对URI(Uniform Resource Identifiers,通用资源标识符)进行编码,以便发送给送浏览器。有效的URI中不能包含某些字符,例如空格。而这两个URI编码方法就可以对URI进行编码,它们用特殊的UTF-8编码替换所有无效的字符,而从让浏览器能够接受和理解。

  其中,encodeURI()主要用于整个URI,而encodeURIComponent()主要用于对URI中的某一段进行编码。它们的主要区别在于,encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而encodeURIComponent()则会对它发现的任何非标准字符进行编码。

  使用encodeURI()编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。而encodeURIComponent()方法则会使用对应的编码替换所有非字母数字字符。这也正是可以对整个URI使用encodeURI(),而只能对附加现有的URI后面的字符串使用encodeURIComponent()的原因所在。

  注:一般来数,我们使用encodeURIComponent()方法的时候要比使用encodeURI()更多,因为在实践中更常见的是对查询字符串参数而不是对基础URI进行编码。

  与encodeURI()和encodeURIComponent()方法对应的两个方法分别是decodeURI()和decodeURIComponent()。其中,decodeURI()只能对使用的encodeURI()替换的字符进行解码。例如,它可以将%20替换成一个空格,但不会对%23座任何处理,因为%23表示井号(#),而井号不是使用encodeURI()替换的。同样的,decodeURIComponent()能够解码使用encodeURIComponent()编码的所有字符,即它可以解码任何特殊字符的编码。

  注:URI方法encodeURI()、encodeURIComponent()、decodeURI()和decodeURIComponent()用于替换已经被ECMA-262第3版废弃的escape()和unescape()方法。URI方法能够编码所有Unicode字符,而原来的方法只能正确的编码ASCII字符。因此在开发实践中,特别是在产品级的代码中,一定要使用URI方法,不要使用escape()和unescape()方法;

时间: 2024-12-26 04:07:37

5.7 单体内置对象的相关文章

基本类型、引用类型、基本包装类型和单体内置对象

基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象.基本包装类型和单体内置对象都是特殊的引用类型. 一.基本类型 基本类型包含Undefined.Null.Boolean.Number.String 这5种.基本数据类型是按值访问的,因为可以操作保存在变量中的实际值. 基本类型保存在内存中的栈中,大小固定,复制其变量时会创建这个值的一个副本.用typeof方法可以确定一个值是哪种基本类型. 二.引用类型 引用类型包括Object .Array.  Date.  RegExp.

RegExp类型,单体内置对象

1.RegExp类型:  1)什么是正则表达式:RegExp    --是一种规则,模式    --强大的字符串匹配工具    --创建:    --使用RegExp构造函数创建:var re=new RegExp('a','i');    --使用字面量创建:var re=/a/i;    //i--ignore表示忽略大小写 2)正则表达式里面的字符:    1)修饰符      --i:执行对大小写不敏感的匹配.      --g:执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)  

高程5.7单体内置对象 5.8小结

内置对象的定义:由ECMAScript实现提供的, 不依赖于鹤环境的对象,这些对象在ECMAScript程序执行之前就已经存在了. 开发人员不必显式地实例化内置对象,因为它们已经实例化了. 前面介绍了大多数内置对象,如Object,Array和String.ECMA-262还定义了两个单体内置对象:Global和Math. 5.7.1 Global对象 没有全局变量或全局函数;所有在全局作用域中定义的属性和函数,都是Global(全局)对象的属性. 诸如isNaN(),isFinite(),pa

第五章 单体内置对象

ECMA-262 对内置对象的定义是:"由ECMAScript 实现提供的.不依赖于宿主环境的对象,这些对象在ECMAScript 程序执行之前就已经存在了."意思就是说,开发人员不必显式地实例化内置对象,因为它们已经实例化了. 我们已经介绍了大多数内置对象,例如Object.Array 和String.ECMA-262 还定义了两个单体内置对象:Global 和Math. 7.1 Global对象 Global(全局)对象可以说是ECMAScript 中最特别的一个对象了,因为不管你

单体内置对象的理解

1.有ECMAScript提供的,不依赖于宿主环境,在程序执行之前就已经存在的对象,叫内置对象,例如Object,Array,String 也就是说,实际使用时不用实例化内置对象,因为他们已经实例化了 2.ECMAScript定义了两个单体内置对象Global和Math a.Global对象 所有在全局作用域中定义的变量和函数,都是Global对象的属性和方法,也就是说,不属于任何对象的属性和方法,都是Global的属性和方法,例如eval()和parseInt() b.Math对象 Math对

javascript学习笔记 - 引用类型 单体内置对象

七 单体内置对象 1.Global对象 不属于任何对象的属性和方法,都归于它.全局作用域中定义的变量.函数,都属于Global对象 1.1 URI编码  encodeURI <=>decodeURI 不会编码本身属于uri的特殊字符 encodeURIComponent  <=> decodeURIComponet 将所有非标准字符进行编码 1.2 window对象 在web浏览器中,一般是将Global对象当作window对象的一部分.因此全局作用域中的变量.函数,都可以通过wi

JavaScript基础——引用类型(四)基本包装类型(Boolean、Number、String)、单体内置对象(Global、Math)

基本包装类型 为了便于操作基本类型值,ECMAScript还提供了3个特殊的引用类型:Boolean.Number和String.这些类型与其它引用类型相似,但同时也具有与各自的基本类型相应的特殊行为.实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据.如: var s1 = "some text"; var s2 = s1.substring(2); 这个例子中的变量s1包含一个字符串,字符串当然是基本类型值.而下

DOM笔记(九):引用类型、基本包装类型和单体内置对象

一.Array 1 .创建数组的方式 //Array构造函数(可以去掉new)var colors0 = new Array();var colors1 = new Array(20);var colors3 = new Array("red","blue","green");//数组字面量var colors4 = ["red","blue","green"];var colors5 

JavaScript单体内置对象:Math对象

JavaScript提供内置的Math对象,其具有强大便捷的辅助计算功能,本文中就将其属性和方法进行总结,相当于扎实以下基础啦~ 1.Math对象的属性 Math.E(常量e的值):Math.LN10(10的自然对数);Math.LN2(2的自然对数):Math.LOG2E(以2为底e的对数):Math.LOG10E(以10为底e的对数):Math.PI(圆周率的值):Math.SORT1_2(1/2的平方根,也即根号二的倒数):Math.SORT2(2的平方根). 2.min()和max()方