當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
javascript一些底层方法总结及用法
生活随笔
收集整理的這篇文章主要介紹了
javascript一些底层方法总结及用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本地對象:ECMA-262 把本地對象(native object)定義為“獨立于宿主環境的 ECMAScript 實現提供的對象”。簡單來說,本地對象就是 ECMA-262 定義的類(引用類型)內置對象:ECMA-262 把內置對象(built-in object)定義為“由 ECMAScript 實現提供的、獨立于宿主環境的所有對象,在 ECMAScript 程序開始執行時出現”。這意味著開發者不必明確實例化內置對象,它已被實例化了。ECMA-262 只定義了兩個內置對象,即 Global 和 Math (它們也是本地對象,根據定義,每個內置對象都是本地對象)。宿主對象:所有非本地對象都是宿主對象(host object),即由 ECMAScript 實現的宿主環境提供的對象。所有 BOM 和 DOM 對象都是宿主對象。enumerables = ['hasOwnProperty', 'valueOf', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'constructor'];// hasOwnProperty:是用來判斷一個對象是否有你給出名稱的屬性或對象。不過需要注意的是,此方法無法檢查該對象的原型鏈中是否具有該屬性,該屬性必須是對象本身的一個成員。
// Ie8以下不支持dom. hasOwnProperty 方法。
// isPrototypeOf是用來判斷要檢查其原型鏈的對象是否存在于指定對象實例中,是則返回true,否則返回false。1、hasOwnProperty作用:是用來判斷一個對象是否有你給出名稱的屬性或對象。調用方式:object.hasOwnProperty(proName)參數:object(必須) 對象的實例;proName(必須) 一個屬性名稱的字符串值注意:如果 object 具有帶指定名稱的屬性,則 hasOwnProperty 方法返回 true,否則返回 false。此方法不會檢查對象原型鏈中的屬性。該屬性必須是對象本身的一個成員。Internet Explorer 8 和低于其的版本的宿主對象不支持該屬性。代碼舉例:在下面的示例中,所有 String 對象共享一個公共 split 方法。 下面的代碼將顯示 false 和 true。var s = new String("Sample");console.log(s.hasOwnProperty("split"));console.log(String.prototype.hasOwnProperty("split"));2、in 運算符作用:測試一個對象中是否存在一種屬性。調用方式:result = property in object參數:result(必須) 任何變量;proName(必須) 計算結果為字符串表達式的表達式;object(必須) 任意對象注意:in 運算符確定對象中是否有名為 property 的屬性。 它還確定屬性是否為對象的原型鏈的一部分。代碼舉例:code1:var myObject = new Object();myObject.name = "James";myObject.age = "22";myObject.phone = "555 0234";if ("phone" in myObject) {console.log("property is present");} else {console.log("property is not present");}code2:console.log("toString" in "zheyang");console.log("toString" in new String("zheyang"))思考: var aa = "zheyang" 與 aa = new String("zheyang") 的區別 3、valueOf作用:返回指定對象的原始值。調用方式:object.valueOf();注意:在JS里數字其實都是浮點數。代碼舉例:var aa = 123 console.log(aa.valueOf())console.log(123.valueOf())console.log(123..valueOf())console.log((123).valueOf())4、typeof作用:返回指定對象的類型。
調用方式:typeof object;代碼舉例:var aa = 12;var bb = new Number(12)console.log(typeof aa)console.log(typeof bb)5、instanceof作用:返回一個布爾值,該值指示一個對象是否為特定類或構造函數的一個實例。調用方式:object instanceof class;參數:object(必須) 一個對象;class(必須) 任何對象類或構造函數;注意:如果 object 是 class 或構造函數的實例,則 instanceof 運算符返回 true。如果 object 不是指定類或函數的實例,或者 object 為 null,則返回 false。JavaScript Object 很特殊,當且僅當對象用 Object 構造函數構造時,對象才被視為 Object 的實例。代碼舉例:function ClassA() {}function ClassB() {}ClassB.prototype = {constructor: ClassA}function ClassC(){ClassA.call(this);}function ClassD(){}var obj = new ClassAvar obj2 = new ClassB;var obj3 = new ClassC;ClassD.prototype = obj2;var obj4 = new ClassD;console.log(obj instanceof ClassA)console.log(obj2 instanceof ClassB)console.log(obj2 instanceof ClassB)console.log(obj3 instanceof ClassA)console.log(obj4 instanceof ClassA)console.log(ClassA instanceof Function)6、isPrototypeOf作用:確定一個對象是否存在于另一個對象的原型鏈中。調用方式:prototype.isPrototypeOf(object)參數:prototype(必須) 對象原型;object(必須) 另一個對象,將對其原型鏈進行檢查注意:如果 object 的原型鏈中具有 prototype,則 isPrototypeOf 方法返回 true。原型鏈用于在同一個對象類型的不同實例之間共享功能。當 object 不是對象或當 prototype 沒有出現在 object 的原型鏈中時,isPrototypeOf 方法返回 false。代碼舉例:function Rectangle() {}var rec = new Rectangle();cosole.log(Rectangle.prototype.isPrototypeOf(rec));7、propertyIsEnumerable作用:返回布爾值,該值指示指定屬性是否為對象的一部分以及該屬性是否是可枚舉的。調用方式:object.propertyIsEnumerable(propName)參數:object(必須) 對象實例;propName(必須) 一個屬性名稱的字符串值;注意:如果 propName 存在于 object 中且可以使用一個 For...In 循環枚舉出來,則 propertyIsEnumerable 屬性將返回 true。如果 object 不具有所指定名稱的屬性或者所指定的屬性不是可枚舉的,則 propertyIsEnumerable 屬性將返回 false。通常,預定義的屬性不是可枚舉的,而用戶定義的屬性總是可枚舉的。propertyIsEnumerable 屬性不考慮原型鏈中的對象。代碼舉例:var a = new Array("apple", "banana", "cactus");var s = a.propertyIsEnumerable(1);console.log (s);8、toString / toLocaleString作用:可把一個對象轉換為字符串,并返回結果。調用方式:object.toString(num)參數:object(必須) 對象;num(非必須) ;注意:如果對象是數子,則參數可為要轉換的進制數,默認為10如果是布爾類型,則會轉換為對應的字符串代碼舉例:var aa = 123console.log(aa.toString(2))var bb = new Boolean(true)console.log(bb)9、constructor代碼舉例: constructor.parent 10、 Function 與 ObjectFunction:首先回顧一下函數對象的概念,函數就是對象,代表函數的對象就是函數對象。
所有的函數對象是被Function這個函數對象構造出來的。
也就是說,Function是最頂層的構造器。
它構造了系統中所有的對象,包括用戶自定義對象,系統內置對象,甚至包括它自已。
這也表明Function具有自舉性(自已構造自己的能力)。
這也間接決定了Function的[[call]]和[[constructor]]邏輯相同。Object:對于Object它是最頂層的對象,所有的對象都將繼承Object的原型,
但是你也要明確的知道Object也是一個函數對象,
所以說Object是被Function構造出來的。代碼舉例:
alert(Function instanceof Function);//true
alert(Function instanceof Object);//true
alert(Object instanceof Function);//true
function Foo() {};
var foo = new Foo();
alert(foo instanceof Foo); // true
alert(foo instanceof Function); // false
alert(foo instanceof Object); // true
alert(Foo instanceof Function); // true
alert(Foo instanceof Object); // true
?
轉載于:https://www.cnblogs.com/haohaoday/p/3944987.html
總結
以上是生活随笔為你收集整理的javascript一些底层方法总结及用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos下apache安装
- 下一篇: 关于c#静态构造函数