JavaScript中的不可見資料型別

2021-09-06 12:44:47 字數 1104 閱讀 2362

js提供了一些內建物件、函式和構造器供我們程式設計,如math、parseint、object、array等。這些都是可見的,程式設計時可以使用的。比如我可以new object 或 new array。

有一些則是不可見的,這些物件只能由引擎在特殊的情形提供。這些型別的物件往往還被消減了一些功能。下面列舉一些

arguments 型別 不能由程式設計師手動建立其物件,即你不能 new arguments() 。 它有且僅有乙個物件arguments

function func() 

func(1, 2, 3)

arguments物件是在函式呼叫的時候建立的,只在函式內部可見和使用。可以看到arguments很象array,可以按索引取元素,也有length屬性。但它不是array,它沒有array的有一些方法比如push、pop等。arguments 在es5 10.6 裡定義。

function func(age) 

var person =

var f1 = func.bind(person, 'computer scientist')

f1() // name: john mccarthy, career: computer scientist

可以看到返回的函式f1和普通函式一樣使用小括號執行呼叫了。 一切正常,但下面的**會讓你大跌眼鏡

function func(age) 

var person =

var f1 = func.bind(person, 'computer scientist')

console.log(f1.prototype) // undefined

和上面**比較,就最後一句不同,沒有執行f1(),而是列印出f1.prototype,發現是undefined。

奇怪嗎? 每個function不都有乙個prototype屬性嗎,這是用來實現原型繼承的哦。的確,bind返回的function比較特殊,它沒有prototype。這種特殊的函式是由js引擎建立的,客戶端程式員沒法通過函式宣告或函式直接量得到。

這一點在規範裡有明確提示 es5 15.3.4.5

003 事務到底可見不可見

檢視資料庫的事務配置 mysql show variables like transaction isolation variable name value transaction isolation read committed 1 什麼是事務 事務是指一條或者一組語句 組成乙個單元,這個單元要麼...

Vim中顯示不可見字元

在linux中,cat a file可以把檔案中的所有 可見的和不可見的字元 都顯示出來,在vim中,如何將不可見字元也顯示出來呢?當然,如果只是想在vim中檢視的話,可以這樣 cat a在vim中呼叫cat轉換顯示。這樣的做法不便於編輯,其實vim本身是可以設定顯示不可見字元的。只需要 set i...

EXCEL中的神秘的不可見字元

因處理資料,需要把單位名稱前的空格字元去年,結果只有幾條記錄的去掉了,大部分記錄的單位名稱欄位前的空格沒有去掉。先看下圖 第1列為原資料,第2列為應用公式trim去空格,第3列用substitue函式替換空格 選中a列第3行 山東路 前面的空格 進行替換操作,把這些未知的字元替換成b 黃色記錄的4處...