全局对象

2019-05-20  本文已影响0人  Mr_LvHeng

全局对象

全局对象分为两种

ECMAScript规定

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

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

简单类型与对象的区别

以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" //得到前三个字符,不包括第四个

全局函数之间的关系

共用属性

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

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

案例:

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 的区别

上一篇下一篇

猜你喜欢

热点阅读