Javascript學習筆記 2(物件 函式)

2021-07-08 20:20:37 字數 2441 閱讀 5338

1、原始變數:number、string、boolean、null、undefined。變數記憶體存的就是值,按值傳遞的

2、引用變數:物件變數,變數記憶體存的是指標,所以是按指標傳遞

鑑別原始型別:typeof ; 但typeof null === object

鑑別引用型別:obj instaceof constructor

isarray(arr):鑑別陣列

當 原始變數 number、string、boolean 需要當做物件使用(比如 新增屬性,使用方法) 時,自動裝箱為相應的引用型別

name = "li"

name.last = "ziqiang" // temp = new string(name); temp.last=""; temp = null;

console.log(name.last) // temp = new string(name); console.log(temp.last) //undefined

內建型別是系統內部提供了建構函式,可以直接new,也可以通過字面形式建立物件

//每個內建型別都可以 字面形式建立物件

array

//new array()、[1,2,3]

data //

error

//function

//new function()、function fun(){}

object

//regexp

//new regexp()、/reg/

物件3種屬性:內部屬性、資料屬性(變數)、訪問器屬性(setter/getter) [[ name ]]

[[prototype]]:          //原型物件,

讀取,或者__proto__來設定

[[extendable]] //是否能給物件新增新的屬性

讀取到,

將該屬性的值設定為false.一旦設定為false,就無法再設定回true了.

自新增的屬性預設 是可遍歷,可配置、可寫的,系統新增的則都是false

[[value]]       :

[[enumerable]]: 該資料 是否可被遍歷,for-in迴圈和object.keys()受影響

[[configurable]]: 該資料是否可配置,若為false,你不能刪除這個屬性,不能改變這個屬性的大部分特性(除了[[value]]),

[[writable]] : 資料屬性特有的 ,代表是否可寫,

///在獲取或賦值屬性attrname時呼叫的方法。。。注意,沒有function關鍵字,

get attrname(){}

set attrname(){}

ecma5之前不能訪問物件的 隱式屬性」[[name]]」,現在可通過函式改變 obj.name 的行為

屬性描述符:將屬性特性 組成乙個物件

下面的函式,要實現屬性描述符,來確定乙個物件,或乙個屬性的特性

//設定a物件的attrname屬性的特性

object.defineproperty(a, attrname, );

//設定物件a的 多個 屬性描述

object.defineproperties(a, arrrname:,)

//建立乙個物件a,捨子它的原型物件和屬性特性描述

a = object.create(proto, attrdesc);

//返回物件obj的名為propname的自身屬性(非繼承來的)的屬性描述符.如果沒有這個自身屬性,則返回undefined.

object.getownpropertydescriptor(obj, attrname);

探測是否擁有屬性: in 操作符,檢查自有屬性和 原型屬性。 hasownproperty() 檢查自有屬性

刪除屬性: delete obj.attr;

遍歷屬性: for-in訪問可enumerable的 自有和原型屬性,,,obj.keys()返回自有的enumerable屬性

1、特有 call 內部屬性,代表可呼叫。

2、函式宣告: function name(){}; 執行引擎 會把函式宣告提公升到 **頂部,而函式表示式不能

函式表示式: 匿名函式

3、函式引數 存放與乙個 類似陣列的 arguments中(不是陣列,

array.isarray(arguments)===false)和陣列的方法不同,

4、函式 有length屬性,代表形參個數

Javascript學習筆記2 繼承 原型鏈

使某個原型物件成為另乙個型別的例項,該原型物件將包含乙個指向另乙個原型的指標,如此層層遞進,就構成了例項與原型的鏈條 function supertype supertype.prototype.getsupervalue function function subtype 繼承 subtype.p...

Javascript 學習筆記

如果在生成的html裡面有事件需要傳遞帶特殊字元的引數,處理如下 singletext 輸入 1.singletext value.escapehtml 為 將html編碼 2.singletext value.escapehtml inspect 為 3.在 jsdebugtext innerht...

javascript學習筆記

視窗操作 1改變視窗的位置 window.location 2視窗的歷史操作 previous 3建立新的視窗 window.open url 視窗名稱 視窗特徵字元 細節 不能換行寫 視窗特徵 width,height,yes,no munubar,status,scrollbars,resiza...