红宝书阅读笔记ch5-3

红宝书阅读笔记ch5-3

单体内置对象(Global对象和Math对象)

单体内置对象

啥叫单体内置对象?
这要分成两部分来说,首先说下什么是内置对象?内置对象的定义是:“由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。”意思是开发人员不必实例化内置对象,因为它们已经实例化了。例如Object、Array和String。
根据前面对内置对象的理解,单体内置对象按我的理解即整个程序中只有一个的内置对象就是单体内置对象,写法就是不用实例化的而且只有一个的对象,可以直接使用这个对象的方法。

Global 对象

Global (全局)对象,是ECMAScript对象中最特别的一个对象了,因为你根本看不见它,但是它确实是存在的,不属于其他对象的属性和方法,都是它的的属性和方法。事实上,没有全局函数和全局变量;所有在全局作用域中的定义的属性和函数,都是Global 对象的属性。例如 parseFloat ( )、isNaN( )、isFinite( )都是Global 对象的方法。
除此之外Global 对象还有其他的方法。

  1. URI 编码方法,要进行编码是因为有效的URI不能包括某些字符,如空格。
    1. encodeURI( ),应用整个URI,将空格编码成 %20 ,除此之外其他不变
    2. encodeURIComponent( ) ,应用URI中的某一段,将所有非字母和数字的字符进行编码替换。

  2. 解码方法
    1. decodeURI( ),对encodeURI( )进行解码,只会将%20 变成空格。
    2. decodeURIComponent( ),对encodeURIComponent( )进行解码,可以解任何特殊字符的编码。
    3. eval( ) 方法,接收一个参数,即要执行的ECMAScript字符串。 它的作用是解释代码字符串。

  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
  1. window 对象,Global全局对象作为window对象的一部分加以实现的。即Global属于window对象的一部分。

Math对象

ECMAScript为保存数学公式和信息提供了一个公共位置,即Math对象。与我们在JavaScript中直接编写的计算功能相比,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的平方根
Math.2 2的平方根
  1. min( ) 和 max( ) 方法 ,得出一组数字中的最小值和最大值。

    1. 找到数组中的最大或最小值

var values=[1,2,3,4,5,6,7,8];
var max=Math.max.apply(Math,values);
alert(max);
  1. 舍入方法

    1. Math.ceil( ) ,执行向上舍入,取整数

    2. Math.florr( ),执行向下舍入,取整数

    3. Math.round( ),四舍五入,取整数

  2. random( ) 方法 ,返回一个大于等于0小于1的随机数。

    1. 取整数的公式
      值 = Math.floor( Math.random( ) * 可能值的总数 + 第一个可能的值 )

    2. 1到10之间的数值
      var num=Math.floor( Math.random() * 10 + 1 );

    3. 函数

function selectFrom(lowerValue, upperValue) {
var choices = upperValue - lowerValue + 1;
return Math.floor(Math.random() * choices + lowerValue);
}
//取数组中的随机一项
var colors=["red","green","blue","black","purple","brown"];
var color=colors[selectFrom(0,colors.length-1)];
//取1到10之间的任意一个整数
var num=selectFrom(1,10);
  1. 其他方法

方法 说明 方法 说明
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的正切值

2019.12.20