全局对象

全局对象

全局对象分为两种

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 是浏览器初始化时为了保留共用属性而指向系统自带的引用方式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。