【javascript】引用类型-单体内置对象

Global对象

  • 不属于任何其他对象的属性和方法,最终都是Global对象的属性和方法
  • 所有在全局作用域中定义的属性和函数,都是Global 对象的属性
  • 诸如isNaN()、isFinite()、parseInt()以及parseFloat(),实际上全都是Global对象的方法

1、URI 编码方法

  • Global 对象的encodeURI()encodeURIComponent()方法可以对URI(Uniform Resource Identifiers,通用资源标识符)进行编码,以便发送给浏览器。
  • 有效的URI 中不能包含某些字符,例如空格。而这两个URI 编码方法就可以对URI进行编码,它们用特殊的UTF-8 编码替换所有无效的字符,从而让浏览器能够接受和理解。
  • encodeURI()主要用于整个URI,不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号。
  • encodeURIComponent()主要用于对URI中的某一段,会对它发现的任何非标准字符进行编码
var uri = "http://www.wrox.com/illegal value.htm#start";
//"http://www.wrox.com/illegal%20value.htm#start"
alert(encodeURI(uri));
//"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start"
alert(encodeURIComponent(uri));
  • 与encodeURI()和encodeURIComponent()方法对应的两个方法分别是decodeURI()
    decodeURIComponent()
  • decodeURI()只能对使用encodeURI()替换的字符进行解码
  • decodeURIComponent()能够解码使用encodeURIComponent()编码的所有字符,即它可以解码任何特殊字符的编码
var uri = "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start";
//http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23start
alert(decodeURI(uri));
//http://www.wrox.com/illegal value.htm#start
alert(decodeURIComponent(uri));

2、eval()方法

  • eval()方法就像是一个完整的ECMAScript解析器,它只接受一个参数,即要执行的ECMAScript (或JavaScript)字符串
  • 当解析器发现代码中调用eval()方法时,它会将传入的参数当作实际的ECMAScript 语句来解析,然后把执行结果插入到原位置。
  • 通过eval()执行的代码被认为是包含该次调用的执行环境的一部分,因此被执行的代码具有与该执行环境相同的作用域链
var msg = "hello world";
eval("alert(msg)"); //"hello world"
eval("function sayHi() { alert('hi'); }");
sayHi();//"hi"
eval("var msg = 'hello world'; ");
alert(msg); //"hello world"
  • 严格模式下,在外部访问不到eval()中创建的任何变量或函数,因此前面两个例子都会导致错误。同样,在严格模式下,为eval 赋值也会导致错误:
"use strict";
eval = "hi"; //causes error

3、Global对象的属性

属性 说明 属性 说明
undefined 特殊值undefined Date 构造函数Date
NaN 特殊值NaN RegExp 构造函数RegExp
Infinity 特殊值Infinity Error 构造函数Error
Object 构造函数Object EvalError 构造函数EvalError
Array 构造函数Array RangeError 构造函数RangeError
Function 构造函数Function ReferenceError 构造函数ReferenceError
Boolean 构造函数Boolean SyntaxError 构造函数SyntaxError
String 构造函数String TypeError 构造函数TypeError
Number 构造函数Number URIError 构造函数URIError
  • ECMAScript 5 明确禁止给undefined、NaN和Infinity赋值,这样做即使在非严格模式下也会导致错误。

4、window对象

  • Web 浏览器都是将Global对象作为window对象的一部分加以实现的,在全局作用域中声明的所有变量和函数,都成为了window对象的属性。
var color = "red";
function sayColor(){
    alert(window.color);
}
window.sayColor(); //"red"

Math对象

  • 与我们在JavaScript 直接编写的计算功能相比,Math对象提供的计算功能执行起来要快得多。
  • Math 对象中还提供了辅助完成这些计算的属性和方法。

1、Math对象的属性

  • 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()方法

  • min()和max()方法用于确定一组数值中的最小值和最大值
  • 这两个方法都可以接收任意多个数值参数
var max = Math.max(3, 54, 32, 16);
alert(max); //54
var min = Math.min(3, 54, 32, 16);
alert(min); //3
  • 要找到数组中的最大或最小值,可以像下面这样使用apply()方法。
var values = [1, 2, 3, 4, 5, 6, 7, 8];
var max = Math.max.apply(Math, values);

3、舍入方法

  • Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;
  • Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;
  • Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数;
alert(Math.ceil(25.9)); //26
alert(Math.ceil(25.5)); //26
alert(Math.ceil(25.1)); //26

alert(Math.round(25.9)); //26
alert(Math.round(25.5)); //26
alert(Math.round(25.1)); //25

alert(Math.floor(25.9)); //25
alert(Math.floor(25.5)); //25
alert(Math.floor(25.1)); //25

4、random()方法

  • Math.random()方法返回大于等于0 小于1 的一个随机数。
  • 套用下面的公式,就可以利用Math.random()从某个整数范围内随机选择一个值。
值 = 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);
}
var num = selectFrom(2, 10);
alert(num); // 介于2 和10 之间(包括2 和10)的一个数值

var colors = ["red", "green", "blue", "yellow", "black", "purple", "brown"];
var color = colors[selectFrom(0, colors.length-1)];
aler t(color); // 可能是数组中包含的任何一个字符串

5、其它方法

  • Math 对象中还包含其他一些与完成各种简单或复杂计算有关的方法
方 法 说 明 方 法 说 明
Math.abs(num) 返回num 的绝对值 Math.asin(x) 返回x 的反正弦值
Math.exp(num) 返回Math.E 的num次幂 Math.atan(x) 返回x 的反正切值
Math.log(num) 返回num 的自然对数 Math.atan2(y,x) 返回y/x 的反正切值
Math.pow(num,power) 返回num 的power次幂 Math.cos(x) 返回x 的余弦值
Math.sqrt(num) 返回num 的平方根 Math.sin(x) 返回x 的正弦值
Math.acos(x) 返回x 的反余弦值 Math.tan(x) 返回x 的正切值
好好学习

你可能感兴趣的:(【javascript】引用类型-单体内置对象)