美文网首页
Javascript-单体内置对象

Javascript-单体内置对象

作者: Tom36 | 来源:发表于2017-12-26 09:41 被阅读0次

内置对象

ECMA-262 对内置对象的定义是:“由ECMAScript 实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript 程序执行之前就已经存在了。”意思就是说,开发人员不必显式地实例化内置对象,因为它们已经实例化了。前面我们已经介绍了大多数内置对象,例如Object、Array 和String。

单体内置对象

一、Global对象

ECMAScript 中的Global 对象在某种意义上是作为一个终极的“兜底儿对象”来定义的。换句话说,不属于任何其他对象的属性和方法,最终都是它的属性和方法。事实上,没有全局变量或全局函数;所有在全局作用域中定义的属性和函数,都是Global 对象的属性。本书前面介绍过的那些函数,诸如isNaN()、isFinite()、parseInt()以及parseFloat(),实际上全都是Global对象的方法。除此之外,Global 对象还包含其他一些方法。

1、URI编码方法
Global 对象的encodeURI()和encodeURIComponent()方法可以对URI(Uniform ResourceIdentifiers,通用资源标识符)进行编码,以便发送给浏览器。有效的URI 中不能包含某些字符,例如空格。而这两个URI 编码方法就可以对URI 进行编码,它们用特殊的UTF-8 编码替换所有无效的字符,从而让浏览器能够接受和理解。
它们的主要区别在于,encodeURI()不会对本身属于URI 的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;而encodeURIComponent()则会对它发现的任何非标准字符进行编码。

var uri = "http://www.dingjianfei.com/1.html";
console.log(encodeURI(uri)); //"http://www.dingjianfei.com/1.html"
console.log(encodeURIComponent(uri));   //"http%3A%2F%2Fwww.dingjianfei.com%2F1.html"

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

eval()方法就像是一个完整的ECMAScript 解析器,它只接受一个参数,即要执行的ECMAScript (或JavaScript)字符串。

eval("console.log('Tom')"); //"Tom"
等价于
console.log("Tom");

注意:在eval()中创建的任何变量或函数都不会被提升,因为在解析代码的时候,它们被包含在一个字符串中;它们只在eval()执行的时候创建。严格模式下,在外部访问不到eval()中创建的任何变量或函数。
**3、Global对象的属性

Global属性
4、window对象
ECMAScript 虽然没有指出如何直接访问Global 对象,但Web 浏览器都是将这个全局对象作为window 对象的一部分加以实现的。因此,在全局作用域中声明的所有变量和函数,就都成为了window对象的属性。
var color = "red";
function sayColor(){
    console.log(window.color);
}
window.sayColor(); //"red"

另一种取得Global 对象的方法是使用以下代码:

var global = function(){              //"window"
  return this;
}();

二、Math()对象

ECMAScript 还为保存数学公式和信息提供了一个公共位置,即Math 对象。与我们在JavaScript 直接编写的计算功能相比,Math 对象提供的计算功能执行起来要快得多。Math 对象中还提供了辅助完成这些计算的属性和方法。
1、Math对象的属性

Math属性
2、min()和max()方法
很显然,这两个方法是找出一组数中的最大和最小值。
var max = Math.max(3,54,32,16);
console.log(max);  //54
var min = Math.min(3,54,32,16);
console.log(min);   //3

要找到数组中的最大或最小值,可以像下面这样使用apply()方法:

var arr = [1,2,3,4,5,6,7,8];
var max = Math.max.apply(Math, arr);
console.log(max); //8

3、舍入方法 Math.ceil() Math.floor() Math.round()

  • Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;
  • Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;
  • Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数(这也是我们在数学课上学到的舍入规则)。
    4、random()方法

Math.random()方法返回大于等于0 小于1 的一个随机数。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。套用下面的公式,就可以利用Math.random()从某个整数范围内随机选择一个值。

值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
例如:
1、取1-10之间的数值:

var num = Math.floor(Math.random() * 10 + 1);

2、取2-10之间的数值:

var num = Math.floor(Math.random() * 9 + 2);

我们可以封装 成这样一个函数:

function selectForm(lowerValue, upperValue){
    var choices = upperValue - lowerValue + 1;
    return Math.floor(Math.random() * choices + lowerValue);
}
var num = selectForm(2, 10);

相关文章

  • Javascript-单体内置对象

    内置对象 ECMA-262 对内置对象的定义是:“由ECMAScript 实现提供的、不依赖于宿主环境的对象,这些...

  • 单体内置对象

    单体内置对象 ECMA262 对单体内置对象的定义是:“由ECMAScript 实现提供的,不依赖于宿主环境的对象...

  • 2018-11-21

    打卡时间:15:30 单体内置对象 开发人员不必显式的实例化内置对象,因为它们已经实例化了。前面有大多数内置对象:...

  • JavaScript-内置对象Array

    Array Array.length length是一个小于2的32次方的正整数,一般情况下用来标记数组中元素的个...

  • 单体内置对象:Math对象

    1.定义好的Math属性,可以直接调用 2.max()和min()方法比较一组数值的最大最小值 3.ceil(),...

  • Web21.Math&数组&Date

    单体内置对象 ECMA-262对内置对象的定义是: 由ECMAScript实现提供的、不依赖于宿主环境的对象,这些...

  • JavaScript引用类型——单体内置对象

    单体内置对象 ECMA-262对内置对象的定义是:有ECMAScript实现提供的、不依赖于宿主环境的对象,这些对...

  • (五)

    单体内置对象ECMA-262对内置对象的定义是:“由ES实现提供的、不依赖宿主环境的对象,这些对象在ES程序执行之...

  • JavaScript — 单体内置对象

    一、Global 对象 URI 编码方法encodeURI() 不会对本身属于 URI的特殊字符进行编码,例如冒号...

  • JavaScript 单体内置对象

    ECMA-262定义内置对象是:由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScr...

网友评论

      本文标题:Javascript-单体内置对象

      本文链接:https://www.haomeiwen.com/subject/jetlgxtx.html