美文网首页
全局对象

全局对象

作者: Mr_LvHeng | 来源:发表于2019-05-20 16:41 被阅读0次

    全局对象

    全局对象分为两种

    ECMAScript规定

    • parseInt
    • parseFloat
    • Number( )
    • String( )
    • Boolean( )
    • Object( )
    • window.setTimeout( 函数, 时间 )
      • 作用传入一个函数在指定时间后执行
    • 等....

    了解所有属性,Google搜索:MDN window

    浏览器自带的私有属性 (浏览器自己添加的属性)

    • alert (弹窗提示)

    • prompt (用户输入)

      可以定义一个变量接收 用户输入的内容

    • confirm (用户确认)

      可以定义一个变量接收 返回布尔类型的两个值

    • console (开发者工具)

      可以在控制台输出

    • document

      • 规范是由W3C制定的
      • history 获取浏览器历史
    • 等....

    简单类型与对象的区别

    以Number为例

    new一个Number对象

    var n = new Number(1)
    n.toString()
    "1"
    
    n.valueOf()
    1
    

    也就是以 new 的方式创建的 Number对象 可以通过 . 调用属性

    但以普通的方法创建一个基本类型的number也可以使用这些函数方法

    var n = 1
    n.toString()
    
    n.valueOf()
    1
    

    原因在于,在Js中,基本类型也可以使用这些函数方法

    只不过基本类型的使用原理是创建一个不存在的临时对象,当调用时会掉用临时对象的函数方法,使用后会立即销毁临时对象和它的函数方法等。

    这个临时对象是不存在的,只能临时使用的

    这个区别在 String( )、Boolean( ) 、中同样适用

    String 中实用的方法

    var a = "hello"
    
    //获取某一个索引对应的字符
    a.charAt(0)
    "h"
    a.charAt(1)
    "e"
    
    a[0]
    "h"
    a[1]
    "e"
    
    //通过索引获取某一个字符的对应的编码
    a.charCodeAt(0)
    104
    a.charCodeAt(1)
    101
    

    toString()用法

    var a = 100
    a.toString(16)
    "64"  //得到的是16进制的100
    

    常用API

    去掉空格

    > "   username   ".trim()
    < "username"
    

    字符串拼接

    > var a1 = "hello"
    > var a2 = "world"
    > a1.concat(a2)
    < "helloworld"
    

    字符串剪切

    var a = "hello"
    a.slice(0,3)
    "hel" //得到前三个字符,不包括第四个
    

    全局函数之间的关系

    共用属性

    有些类型对象自己专属共用属性,那么在创建此类型对象时会先指向自己的专属的共用属性,再去指向所有对象类型的共用属性。

    含有特殊共有属性的几个对象:

    • Number()
    • String()
    • Boolean()

    案例:

    Object.prototype // 所有类型对象的共用属性
    Number.prototype // Number类型对象的共用属性
    var n1 = new Number(1)
    n1.__proto__ === Number.prototype  // true
    n1.__proto__.__proto__ === Object.prototype  // true
    

    Object() 的共用属性就是所有的共用属性

    Object() 和其他类型对象的共用属性的区别案例:

    Object.prototype // 所有类型对象的共用属性
    var o1 = {}
    o1.__proto__ === Object.prototype  //true
    
    var n1 = new Number(1)
    n1.__proto__ === Number.prototype  // true
    n1.__proto__.__proto__ === Object.prototype  // true
    
    

    __proto__prototype 的区别

    • __proto__ 是创建后的对象的共用属性的应用

    • prototype 是浏览器初始化时为了保留共用属性而指向系统自带的引用方式

    相关文章

      网友评论

          本文标题:全局对象

          本文链接:https://www.haomeiwen.com/subject/muakzqtx.html