单体内置对象

来源:互联网 发布:软件授权码生成器 编辑:程序博客网 时间:2024/05/20 05:11

单体内置对象

内置对象的定义是:不依赖宿主环境的对象,这些对象在ECMScript程序执行之前就已经存在了。开发人员不必实例化,因为他们已经存在了。前面我们已经介绍了大多数内置对象,例如:ObjectArrayString
ECMScript定义了2个单体内置对象

  • Global
  • Math

一、Global

所有的全局作用域中定义的属性和函数,都是Global对象的属性

  • isNaN()
  • isFinite()
  • parseInt()
  • parseFloat()
  • encodeURI()
  • encodeURIComponent()
  • decodeURI()
  • decodeURIComponent()
  • escape()
  • unescape()
  • eval()
    这里着重介绍eval()
    eval()是一个完整的ECMScript解析器,它只接受一个参数,即要执行的ECMScript或JavaScript字符串
    eval("alert('hellow word')");    //上面这行代码的作用等价于下面这行代码:    alert('hellow word');

当解析器发现代码中调用eval()方法时,它会将传入的参数当做实际的ECMScript语句来解析,然后把执行的结果插入到原来的位置。通过eval()执行的代码被认为是包含该次调用的执行环境的一部分,因此被执行的代码具有与该执行环境相同的作用域,这意味着通过eval()执行的代码可以引用在包含环境中定义的变量,举个例子:

    var msg='hellow world';    eval("alert(msg)");

eval()中创建的任何变量或函数都不会被提升,因为再解析代码的时候,它们被包含在一个字符串中,它们只在eval()执行的时候创建
eval()解析字符串的功能非常强大,但同时也非常危险

二、Math对象

1、常用的方法

方法 属性 Math.min() 求最小数 Math.max() 求最大数 Math.ceil() 向上取整 Math.floor() 向下取整 Math.round() 四舍五入 Math.randow() 返回一个大于等于0小于1的随机数

利用Math.randow()可随机生成某个整数范围内的数值,公式:
值=Math.floor(Math.random()*可能的得总数+第一个可能的值)
取值范围【start,end】,可能值得总数=end-star 第一个可能的值=start
例、随机生成22-69之间的数字

    //可能值得总数=69-22,第一个可能的值22    console.log(Math.floor(Math.random()*47+22));

2、其他方法

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

小结

在所有的代码执行之前,作用域中就已经存在两个内置对象:Global和Math。在大多数ECMAScript视线中都不能直接访问Global对象;不过,web浏览器实现了承担该角色的window对象。全局变量和函数都是Global对象的属性。Math对象提供了很多属性和方法,用于辅助完成复杂的数学计算任务

0 0