全局对象
全局对象分为两种
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
是浏览器初始化时为了保留共用属性而指向系统自带的引用方式
网友评论