首页 > it技术 > >
【javascript】引用类型-单体内置对象
2022-01-04
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的平方根
【【javascript】引用类型-单体内置对象】 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));
//26alert(Math.round(25.9));
//26
alert(Math.round(25.5));
//26
alert(Math.round(25.1));
//25alert(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 的正切值
文章图片
好好学习
推荐阅读