js单体内置对象
js单体内置对象:js的内置对象,是ECMAScritp提供的、不依赖于宿主环境的对象,我的理解就是在我们开发之前js里面就已经存在的对象。单体内置对象就是是不需要通过new来实例化的,例如我们的string可以new,但是Math是不要new的,因为可以直接使用Math的API。
一、Global 对象
Global 对象是JavaScript中的内部对象,该对象无法直接访问,其目的是将全局方法收集到一个对象中。我们直接使用该对象的属性和方法即可。
1.global对象的属性
属性 | 描述 |
---|---|
Infinity | 特殊值表示正的无穷大。 |
NaN | 特殊值表示非数字值。 |
undefined | 特殊值表示一个变量未被初始化。 |
2.global对象的方法
(1)URI(通用资源标识符)编码方法。使用特殊的utf-8编码对uri进行编码,替换无效字符,是浏览器能够理解。
encodeURI():函数不会对下列字符进行编码:":"、"/"、";"和"?"。
encodeURIComponent():函数会编码所有的字符。如果你想把URI当作请求参数传递,那么你可以使用本函数
// 原URI var uri = "http://www.365mini.com/page/tag/中国近代史的前车之鉴"; // 编码URI var encodedUri = encodeURI( uri ); document.writeln( encodedUri ); // http://www.365mini.com/page/tag/%E4%B8%AD%E5%9B%BD%E8%BF%91%E4%BB%A3%E5%8F%B2%E7%9A%84%E5%89%8D%E8%BD%A6%E4%B9%8B%E9%89%B4 // 编码URI组件 var encodedUri = encodeURIComponent( uri ); document.writeln( encodedUri ); // http%3A%2F%2Fwww.365mini.com%2Fpage%2Ftag%2F%E4%B8%AD%E5%9B%BD%E8%BF%91%E4%BB%A3%E5%8F%B2%E7%9A%84%E5%89%8D%E8%BD%A6%E4%B9%8B%E9%89%B4
encodeURI():函数不会对下列字符进行编码:":"、"/"、";"和"?",函数用于对统一资源标识符(URI)进行编码,并返回编码后的URI字符串。
encodeURIComponent():函数用于对统一资源标识符(URI)的有效组件进行编码,并返回编码后的字符串。函数会编码所有的字符
//原URI组件 var uri = "http://www.365mini.com/page/tag/中国近代史的前车之鉴"; // 编码URI组件 var encodedUri = encodeURIComponent( uri ); document.writeln( encodedUri ); // http%3A%2F%2Fwww.365mini.com%2Fpage%2Ftag%2F%E4%B8%AD%E5%9B%BD%E8%BF%91%E4%BB%A3%E5%8F%B2%E7%9A%84%E5%89%8D%E8%BD%A6%E4%B9%8B%E9%89%B4 // 编码URI var encodedUri = encodeURI( uri ); document.writeln( encodedUri ); // http://www.365mini.com/page/tag/%E4%B8%AD%E5%9B%BD%E8%BF%91%E4%BB%A3%E5%8F%B2%E7%9A%84%E5%89%8D%E8%BD%A6%E4%B9%8B%E9%89%B4
(2)evel():函数用于计算并执行以字符串表示的JavaScript代码。eval()
函数使JS可以动态执行JavaScript源代码
var code = "var x = 18; y = 12; document.writeln(x + y);"; eval( code ); // 30 code = " 2 + 3"; var result = eval( code ); document.writeln( result ); // 5
二、Math对象
Math对象是JavaScript中内置的一个全局对象,它主要提供一些基本的、常用的数学函数和常数。
Math
对象上均是静态函数和静态常量属性,因此Math
对象没有构造函数,也不需要创建它(不需要new新的对象),直接使用Math
的属性和方法即可。
math对象的属性:
E:返回数学常量 e,即自然对数的底数(约等于2.718)。
LN10:返回 10 的自然对数(约等于2.303)。
LN2:返回 2 的自然对数(约等于0.693)。
LOG10E:返回以 10 为底的 e 的对数(即log10e,约等于0.434)。
LOG2E:返回以 2 为底的 e 的对数(即log2e,约等于 1.414)。
PI:返回圆周率π(约等于3.14159)。
document.write(Math.PI); // 3.141592653589793
SQRT1_2:返回 0.5 的平方根,也就是 2 的平方根的倒数(约等于 0.707)。
SQRT2:返回 2 的平方根(约等于 1.414)。
Math对象的方法:
abs(x):返回数的绝对值。
acos(x) :返回数的反余弦值。
asin(x) :返回数的反正弦值。
atan(x) :以介于 -π/2 与 π/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x): 返回从 x 轴到点 (x,y) 的角度(介于 -π/2 与 π/2 弧度之间)。
ceil(x) :对数进行上舍入。
cos(x) :返回数的余弦。
exp(x) :返回 e 的指数。
floor(x) :对数进行下舍入。
log(x):返回数的自然对数(底为e),即logex。
max(x,y):返回 x 和 y 中的最高值。
min(x,y):返回 x 和 y 中的最低值。
pow(x,y): 返回 x 的 y 次幂。
random(): 返回 0 ~ 1 之间(不包括 1)的随机数。
round(x):把数四舍五入为最接近的整数。
sin(x):返回数的正弦值。
sqrt(x): 返回数的平方根。
tan(x) :返回角的正切值。
// 多个参数时,返回最大的数 document.writeln( Math.max( -1, 2.1, 10.5, 7 ) ); // 10.5 document.writeln( Math.sqrt( 9 ) ); // 3