13-JavaScript高级程序设计-单体内置对象

一、单体内置对象

定义:由 ECMAScript 实现提供的、不依赖于宿主环境的对象,这些对象在 ECMAScript 程序执行之前就已经存在了。
内置对象:Object、Array 和 String等等都是
单体内置对象:Global 和 Math

1.Global

终极的“兜底儿对象” ==> 不属于任何其他对象的属性和方法,最终都是它的属性和方法。
所有在全局作用域中定义的属性和函数,都是 Global 对象的属性。

isNaN()、isFinite()、parseInt()以及 parseFloat()等方法都是Global 对象的属性。

1.URI 编码方法

(1)encodeURI() encodeURIComponent()
作用:对 URI (Uniform Resource Identifiers,通用资源标识符) 进行编码,用特殊的 UTF-8 编码替换所有无效的字符,以便发送给浏览器。
encodeURI()主要用于整个URI,encodeURIComponent()主要用于对URI中的某一段进行编码。

主要区别:
encodeURI() 不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、 问号和井字号;
encodeURIComponent() 会对它发现的任何非标准字符进行编码。

(2)decodeURI() decodeURIComponent()
decodeURI() 只能对使用 encodeURI() 替换的字符进行解码。
decodeURIComponent() 能够解码使用 encodeURIComponent() 编码的所有字符,即它可以解码任何特殊字符的编码。

拓展:ECMA-262第3版废弃的 escape() 和 unescape() 方法不要使用。
使用以上四个URI方法。

2.eval() 方法

eval(执行的字符串) – 相当于一个完整的 ECMAScript 解析器
eval("function sayHi() { alert('hi'); }");
当解析器发现代码中调用 eval() 方法时,它会将传入的参数当作实际的 ECMAScript 语句来解析,然后把执行结果插入到原位置。

注意点:

  • 通过 eval() 执行的代码被认为是包含该次调用的执行环境的一部分,因此被执行的代码具有与该执行环境相同的作用域链。
  • 在 eval() 中创建的任何变量或函数都不会被提升 ,因为在解析代码的时候,它们被包含在一个字符串中;它们只在 eval() 执行的时候创建。
  • 严格模式下,在外部访问不到 eval() 中创建的任何变量或函数,为 eval 赋值也会导致错误。
  • 能够解释代码字符串的能力非常强大,但也非常危险。
3.Global 对象的属性

undefined / 特殊值 undefined
NaN / 特殊值 NaN
Infinity / 特殊值 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

4.window对象

Web 浏览器将这个全局对象 (Global对象) 作为 window 对象的一部分加以实现的。因此,在全局作用域中声明的所有变量和函数,就都成为了 window 对象的属性。
除了使用window 获取 Global 对象的方法:

var global = function(){
return this;
}();
2.Math
1. Math 对象的属性

Math.E: 自然对数的底数,即常量 e 的值
Math.LN10: 10的自然对数
Math.LN2: 2的自然对数
Math.LOG2E: 以2为底 e 的对数
Math.LOG10E: 以10为底 e 的对数
Math.PI: π的值
Math.SQRT1_2: 1/2的平方根(即2的平方根的倒数)
Math.SQRT2: 2的平方根

2. min() 和 max() 方法

取一组数值中的最小值和最大值。
var max = Math.max(3, 54, 32, 16);
var min = Math.min(3, 54, 32, 16);
应用技巧:
要求数组中的最大值或最小值,可以结合 apply() 方法。
var max = Math.max.apply(Math, [1,2,3,4]);

3.舍入方法

Math.ceil() 向上取整
Math.floor() 向下取整
Math.round() 四舍五入

4.random()方法

Math.random() 方法 返回大于等于 0 小于 1 的一个随机数。
从某个整数范围内随机选择一个值:
值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
例如:
[1-10]: var num = Math.floor(Math.random() * 10 + 1);
[2-10]: var num = Math.floor(Math.random() * 9 + 2);
函数封装:

function selectFrom(lowerValue, upperValue) {
  var choices = upperValue - lowerValue + 1;
  return Math.floor(Math.random() * choices + lowerValue);
}
5.其他方法

Math.abs(num) - 返回 num 的绝对值
Math.exp(num) - 返回 Math.E 的 num 次幂
Math.log(num) - 返回 num 的自然对数
Math.pow(num,power) - 返回 num 的 power 次幂
Math.sqrt(num) - 返回 num 的平方根
Math.acos(x) - 返回 x 的反余弦值
Math.asin(x) - 返回 x 的反正弦值
Math.atan(x) - 返回 x 的反正切值
Math.atan2(y,x) - 返回 y/x 的反正切值
Math.cos(x) - 返回 x 的余弦值
Math.sin(x) - 返回 x 的正弦值
Math.tan(x) - 返回 x 的正切值


上一篇:12-JavaScript高级程序设计-基本包装类型
下一篇:14-JavaScript高级程序设计-理解对象

全书整理版:《Javascript高级程序设计》第3版(总结版)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值