全局對象
全局對象分為兩種
ECMAScript規(guī)定
- parseInt
- parseFloat
- Number( )
- String( )
- Boolean( )
- Object( )
- window.setTimeout( 函數(shù), 時間 )
- 作用傳入一個函數(shù)在指定時間后執(zhí)行
- 等....
了解所有屬性,Google搜索:MDN window
瀏覽器自帶的私有屬性 (瀏覽器自己添加的屬性)
alert (彈窗提示)
-
prompt (用戶輸入)
可以定義一個變量接收 用戶輸入的內(nèi)容
-
confirm (用戶確認)
可以定義一個變量接收 返回布爾類型的兩個值
-
console (開發(fā)者工具)
可以在控制臺輸出
-
document
- 規(guī)范是由W3C制定的
- history 獲取瀏覽器歷史
等....
簡單類型與對象的區(qū)別
以Number為例
new一個Number對象
var n = new Number(1)
n.toString()
"1"
n.valueOf()
1
也就是以 new 的方式創(chuàng)建的 Number對象 可以通過 . 調(diào)用屬性
但以普通的方法創(chuàng)建一個基本類型的number也可以使用這些函數(shù)方法
var n = 1
n.toString()
n.valueOf()
1
原因在于,在Js中,基本類型也可以使用這些函數(shù)方法
只不過基本類型的使用原理是創(chuàng)建一個不存在的臨時對象,當調(diào)用時會掉用臨時對象的函數(shù)方法,使用后會立即銷毀臨時對象和它的函數(shù)方法等。
這個臨時對象是不存在的,只能臨時使用的
這個區(qū)別在 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" //得到前三個字符,不包括第四個
全局函數(shù)之間的關(guān)系
共用屬性
有些類型對象自己專屬共用屬性,那么在創(chuàng)建此類型對象時會先指向自己的專屬的共用屬性,再去指向所有對象類型的共用屬性。
含有特殊共有屬性的幾個對象:
- 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() 和其他類型對象的共用屬性的區(qū)別案例:
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 的區(qū)別
__proto__是創(chuàng)建后的對象的共用屬性的應用prototype是瀏覽器初始化時為了保留共用屬性而指向系統(tǒng)自帶的引用方式