• 《红宝书》 |单例内置对象 |Global和Math


    单例内置对象:任何由ECMAScript实现提供、与宿主环境无关,并在ECMAScript程序开始执行时就存在的对象。即内置对象本身已经实例化好了。常见的内置对象有:ObjectArrayStringGlobalMath

    Global

    它是最特别的对象,因为代码不会显示地访问它。事实上,全局变量和全局函数都会变成Global的属性。isNaN()isFinite()parseInt()parseFloat()实际上都是Global的方法。

    编码与解码

    yBi2dJ.png

    let url="https://www.wrox.com/illegal value.js#start"
    encodeURI(url)          //https://www.wrox.com/illegal%20value.js#start
    encodeURIComponent(url) //https%3A%2F%2Fwww.wrox.com%2Fillegal%20value.js%23start
    

    eval()方法

    它是一个完整的ECMAScript解释器,它接收一个参数,即要执行的ECMAScript字符串:

    eval("console.log('hello')")    //hello
    

    一般情况下,eval()执行的代码属于该调用所在上下文,被执行的代码与该上下文拥有相同的作用域链:

    let msg="hello"
    eval("console.log(msg)")    //hello
    
    eval("function sayHi(){console.log('hi')}")
    sayHi() //hi
    
    eval("let msg="hello")
    console.log(msg)    //hello
    

    在严格模式下,执行eval()相当于创建了一个新的上下文。这种情况下,外部无法访问内部,但内部可以访问外部。

    Global对象属性

    yBAaIH.png

    window对象

    虽然无法直接访问Global,但浏览器将window对象作为Glocal对象的代理。因此所有全局作用域中声明的变量和函数都成了window的属性。

    获取Global对象

    当一个函数没有明确指定this的情况下执行时,this值等于Global对象。

    let global=function(){
        return this
    }();
    

    Math

    ECMAScript提供了Math对象作为保存数学公式、信息和计算的地方。

    Math属性

    这些属性主要用于保存数学中的一些特殊值:
    yBuDAK.png

    Math方法

    yBuMmq.png
    取最大最小值

    Math.min(1,2,3,4,5) //1
    Math.max(1,2,3,4,5) //5
    //对于数组可以使用扩展操作符
    let arr=[1,2,3,4,5]
    Math.max(...arr)    //5
    

    舍入

    let num=1.5
    Math.ceil(num)  //2
    Math.floor(num) //1
    Math.round(num) //2
    

    随机数

    Math.random()   //0.932879007220689
    //取1~10
    Math.floor(Math.random()*10+1)
    //取2~9:*后面表示总数有多少,+后面表示最小取多少
    Math.floor(Math.random()*9+2)
    
  • 相关阅读:
    第一篇:数据仓库概述
    第五篇:数据库系统的实现
    第四篇:SQL
    Django框架ORM常用参数汇总_模型层
    Django框架ORM常用字段汇总_模型层
    Boost.Asio的使用技巧
    Boost库之asio io_service以及run、run_one、poll、poll_one区别
    Boost::asio io_service 实现分析
    boost asio中io_service类的几种使用
    boost::io_service解读
  • 原文地址:https://www.cnblogs.com/sanhuamao/p/14397606.html
Copyright © 2020-2023  润新知