Global
是是ECMAScript 中的全局對象(瀏覽器中是window
),不屬於其餘對象的屬性和方法,全部在全局做用域中定義的屬性和方法,都是Global
對象的屬性(window
)。瀏覽器
window
的屬性分爲兩類,一種是 ECMAScript 規定的,一種是瀏覽器私有的(各瀏覽器可能不同)。ECMAScript 規定的有parseInt
、parseFloat
、Number
、String
、Object
、Boolean
等,瀏覽器私有的alert
、console
、prompt
、confirm
、document
等。函數
var n = 1 //n是基本類型(number) var n1 = new Number(1) //n1是對象(object)
對象有toString()
方法,好比n1.toString()
基本類型也能夠用toString()
方法,它是經過在內存中建立一個臨時變量來獲取的,好比temp.toString()
,在語句結束後這個變量就被回收了,因此:spa
var a = 1 a.xxx = 2 //語句結束後被回收,temp 在語句結束後將被回收 a.xxx //undefined,再次訪問該屬性,值爲undefined
trim()
裁剪字符串兩邊的空格concat()
鏈接兩個字符串prototype
__proto__
和prototype
的區別:code
var s = new String() //String.prototype 是 String 的公共屬性(原型)的引用 //s.__proto__ 是 String 的公有屬性(原型)的引用
Number
、String
、Object
、Boolean
的公有屬性都存儲在Object
原型中。沒寫代碼的時,瀏覽器就默認有這條原型鏈指向Object
原型,以下圖;當咱們建立了一個變量後,它就建立了在Heap 中建立了一個對象,指向這個對象自己的原型,不在指向prototype
,以下圖紅線。對象
var __①__ = new __②__; //① 類型:對象 //② 類型:函數 var Object = new Function(); //var 對象 = new 函數; Object.__proto__ === Function.prototype; //對象.__proto__ === 函數.prototype; Function.__proto__ === Function.prototype; //由於 Function 也是 Object