交流群:462197261站长百科站长论坛热门标签收藏本站北冥有鱼 互联网前沿资源第一站 助力全行业互联网+
点击这里给我发消息
  • 当前位置:
  • JavaScript内置对象math,global功能与用法实例分析

    本文实例讲述了JavaScript内置对象math,global功能与用法。分享给大家供大家参考,具体如下:

    学习要点:

    1.Global对象
    2.Math对象

    ECMA-262对内置对象的定义是:“由ECMAScript实现提供的、不依赖宿主环境的对象,这些对象在ECMAScript程序执行之前就已经存在了。”意思就是说,开发人员不必显示地实例化内置对象;因为它们已经实例化了。ECMA-262只定义了两个内置对象:Global和Math。

    一.Global对象

    Global(全局)对象是ECMAScript中一个特别的对象,因为这个对象是不存在的。在ECMAScript中不属于任何其他对象的属性和方法,都属于它的属性和方法。所以,事实上,并不存在全局变量和全局函数;所有在全局作用域定义的变量和函数,都是Global对象的属性和方法。

    PS:因为ECMAScript没有定义怎么调用Global对象,所以,Global.属性或者Global.方法()都是无效的。(Web浏览器将Global作为window对象的一部分加以实现)

    Global对象有一些内置的属性和方法:

    1.URI编码方法

    URI编码可以对链接进行编码,以便发送给浏览器。它们采用特殊的UTF-8编码替换所有无效字符,从而让浏览器能够接受和理解。

    encodeURI()不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和#号;而encodeURIComponent()则会对它发现的任何非标准字符进行编码

    var box = '//Lee李';
    alert(encodeURI(box));            //只编码了中文
    var box = '//Lee李';
    alert(encodeURIComponent(box));      //特殊字符和中文编码了
    
    

    PS:因为encodeURIComponent()编码比encodeURI()编码来的更加彻底,一般来说encodeURIComponent()使用频率要高一些。

    使用了URI编码过后,还可以进行解码,通过decodeURI()decodeURIComponent()来进行解码

    var box = '//Lee李';
    alert(decodeURI(encodeURI(box)));      //还原    
    var box = '//Lee李';
    alert(decodeURIComponent(encodeURIComponent(box)));    //还原
    
    

    PS:URI方法如上所述的四种,用于代替已经被ECMA-262第3版废弃的escape()unescape()方法。URI方法能够编码所有的Unicode字符,而原来的只能正确地编码ASCII字符。所以建议不要再使用escape()unescape()方法。

    2.eval()方法

    eval()方法主要担当一个字符串解析器的作用,他只接受一个参数,而这个参数就是要执行的JavaScript代码的字符串。

    eval('var box = 100');            //解析了字符串代码
    alert(box);
    eval('alert(100)');              //同上
    eval('function box() {return 123}');      //函数也可以
    alert(box());
    
    

    eval()方法的功能非常强大,但也非常危险。因此使用的时候必须极为谨慎。特别是在用户输入数据的情况下,非常有可能导致程序的安全性,比如代码注入等等。

    3.Global对象属性

    Global对象包含了一些属性:undefined、NaN、Object、Array、Function等等。

    alert(Array); //返回构造函数
    
    

    4.window对象

    之前已经说明,Global没有办法直接访问,而Web浏览器可以使用window对象来实现一全局访问。

    alert(window.Array); //同上
    
    

    二.Math对象

    ECMAScript还为保存数学公式和信息提供了一个对象,即Math对象。与我们在JavaScript直接编写计算功能相比,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的平方根
    Math.SQRT2 2的平方根
    alert(Math.E);
    alert(Math.LN10);
    alert(Math.LN2);
    alert(Math.LOG2E);
    alert(Math.LOG10E);
    alert(Math.PI);
    alert(Math.SQRT1_2);
    alert(Math.SQRT2);
    
    

    2.min()和max()方法

    Math.min()用于确定一组数值中的最小值。Math.max()用于确定一组数值中的最大值。

    alert(Math.min(2,4,3,6,3,8,0,1,3));        //最小值
    alert(Math.max(4,7,8,3,1,9,6,0,3,2));      //最大值
    
    

    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.floor(25.9));            //25
    alert(Math.floor(25.5));            //25
    alert(Math.floor(25.1));            //25
    
    alert(Math.round(25.9));            //26
    alert(Math.round(25.5));            //26
    alert(Math.round(25.1));            //25
    
    

    4.random()方法

    Math.random()方法返回介于0到1之间一个随机数,不包括0和1。如果想大于这个范围的话,可以套用一下公式:

    值 = Math.floor(Math.random() * 总数 + 第一个值)

    alert(Math.floor(Math.random() * 10 + 1)); //随机产生1-10之间的任意数
    for (var i = 0; i<10;i ++) {
      document.write(Math.floor(Math.random() * 10 + 5)); //5-14之间的任意数
      document.write('<br />');
    }
    
    

    为了更加方便的传递想要范围,可以写成函数:

    function selectFrom(lower, upper) {
      var sum = upper - lower + 1; //总数-第一个数+1
      return Math.floor(Math.random() * sum + lower);
    }
    for (var i=0 ;i<10;i++) {
      document.write(selectFrom(5,10)); //直接传递范围即可
      document.write('<br />');
    }
    
    

    5.其他方法

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

    更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript数组操作技巧总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

    希望本文所述对大家JavaScript程序设计有所帮助。

    您可能感兴趣的文章:

    • Javascript类库的顶层对象名用户体验分析
    • JS window对象的top、parent、opener含义介绍
    • js window对象属性和方法相关资料整理
    • javascript window对象属性整理
    • JavaScript中Window对象的属性及事件
    • JavaScript的document对象和window对象详解
    • Javascript Global对象
    • Nodejs学习笔记之Global Objects全局对象
    • JavaScript高级程序设计 读书笔记之十一 内置对象Global
    • ES6顶层对象、global对象实例分析

    广而告之:
    热门推荐:
    JavaScript转换二进制编码为ASCII码的方法

    本文实例讲述了JavaScript转换二进制编码为ASCII码的方法。分享给大家供大家参考。具体如下: <html> <head> <script type="text/javascript"> var input_id = "bin_text"; var answer_id = "answer"; function convertToASCII() { var bin_text = documen···

    浅谈js中几种实用的跨域方法原理详解

    这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。 下表给出了相对http://store.company.com/dir/page.html同源检···

    JS实现快速比较两个字符串中包含有相同数字的方法

    本文实例讲述了JS实现快速比较两个字符串中包含有相同数字的方法。分享给大家供大家参考,具体如下: 有两个字符串: $a = "5,8,0"; $b = "8,0,5"; 怎样快速比较这两个字符串包含的数字是相同的,其中分隔符都是相同的,只是数字的排序不一样,两个字符串长度是一样的 js代码···

    jQuery 数据缓存data(name, value)详解及实现

    作为一名程序员,一提到“缓存”你很容易联想到“客户端(浏览器缓存)”和“服务器缓存”。客户端缓存是存在浏览者电脑硬盘上的,即浏览器临时文件夹,而服务器缓存是存在服务器内存中,当然在一些高级应用场合也有专门的缓存服务器,甚至有利用数据库进行缓存的实现。当然这···

    帝国网站管理系统自定义页面

    自定义页面 一、自定义页面功能说明 自定义页面功能:也就是我们常说的增加单页,比如增加“关于我们”、“联系我们”等单页页面。 自定义页面的页面模式支持两种方式:1、直接页面式:直接编辑整个页面界面的方式。2、···

    原来JS还可以这样拆箱转换详解

    前言 在读 Winter 大佬的《重学前端》栏目时,重温了 JS 的「拆箱转换」。「装箱转换」与「拆箱转换」以前都是了解的,今天来看,自己所谓的了解也真是一知半解。在阅读 Winter 老师写的内容后,对「拆箱转换」这个知识点还是不甚清楚,因此我再去深入地了解一番,参考资料详见···

    Windows下Node.js安装及环境配置方法

    一、安装环境 1、本机系统:Windows 10 Pro(64位) 2、Node.js:v6.9.2LTS(64位) 二、安装Node.js步骤 1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/ 2、选安装目录进行安装 3、环境配置 4、测试 三、前期准备 1、Node.js简介 简单的说 Node.js 就是运行···

    解析网站增加高质量外链之法

      在过程中是非常重要的,那么网站怎样增加高质量呢?   一、搜索引擎对外部链接的分析技术   网站怎样增加高质量外链   1、反向链接的数目越多,对越有利!   2、高权重网页对排名的影响更大,质量远比数量重要!   3、链接增加的速度过快,嘿嘿,会进入沙盒期哦! ···

    javascript 模式设计之工厂模式学习心得

    模式类型:工厂模式 模式说明:常用模式之一,用来动态创建对象 适用范围:在运行期间需要在一系列可互换的子类中进行选择的类 注意事项:接口的实现,从而使不同子类可以被同等的对待,恰当的使用工厂模式,但不要拘泥与形式,理解本质。 关键点:以 函数/类/子类 构建···

    firefox 和 ie 事件处理的细节,研究,再研究 书写同时兼容ie和ff的事件处理代码

    在ie中,事件对象是作为一个全局变量来保存和维护的。 所有的浏览器事件,不管是用户触发的,还是其他事件, 都会更新window.event 对象。 所以在代码中,只要轻松调用 window.event 就可以轻松获取 事件对象, 再 event.srcElement 就可以取得触发事件的元素进行进一步处···