日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

《JavaScript高级程序设计》阅读笔记(三):ECMAScript中的引用类型

發布時間:2025/3/8 javascript 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《JavaScript高级程序设计》阅读笔记(三):ECMAScript中的引用类型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2.8 引用類型

1、Object類

  ECMAScript中的所有類都是由Object類繼承而來。

  Object類具有下列屬性:

  Constructor:對創建對象的函數的引用(指針),對于Object類,該指針指向原始的Object()函數

  Prototype:對該對象的對象原型的引用。

  Object類還有幾個方法:

  HasOwnProperty(property):判斷對象是否有某個特定的屬性。必須用字符串指定該屬性值

  IsPrototypeOf(object):判斷該對象是否為另一個對象的原型。

  PropertyIsEnumerable(property):判斷給定的屬性是否可以用for...in語句進行枚舉

  ToString():返回對象的原始字符串表示。

  ValueOf():返回最適合該對象的原始值。對于許多類,該方法返回的值都與toString()的返回值相同。

  上面列出的每種屬性和方法都會被其他類覆蓋。

2、Boolean類

  在ECMAScript中很少使用Boolean對象,因為不易理解,如:

1 var oFalseObject = new Boolean(false);
2 var bResult= oFalseObject && true; //outpus true

  在這段代碼中,用false值創建Boolean對象,然后用這個值與原始值true進行 AND 操作。在Boolean運算中,false和true進行AND 操作的結果是 false。不過,在這行代碼中,計算的是oFalseObject,而不是它的值false。在Boolean表達式中,所有對象都會被自動轉換為true,所以結果為true。參考下面的代碼:

1 var oFalseObject = new Boolean(false);
2 var bResult= oFalseObject && true; //outpus true
3 var bResult2= oFalseObject.valueOf() && true; //outpus false

3、Number類

  Number的toString()方法在上篇文章中有詳細的介紹。

  Number有幾個處理數值的專用方法:

  toFixed(參數):返回的是具有指定位數小數的數字的字符串表示。參數范圍為0—20

  toExponential(參數):返回的是用科學計數法表示的數字的字符串形式。與toFixed()方法相似,toExponential()也有一個參數要輸出的小數的位數。參數范圍為0—20

  toPrecision(參數):根據最有意義的形式來返回數字的預定形式或指數形式。它有一個參數,即用于表示數字總數(不包括指數)。參數最小為1

  以上三個方法都會進行舍入操作。示例代碼:

1 var oNumber=new Number(99);
2 console.log(oNumber.toFixed(0)); //outpus 99
3 console.log(oNumber.toFixed(2)); //outpus 99.00
4
5 var oNumber1=new Number(99);
6 console.log(oNumber1.toExponential(0)); //outpus 1e+2 進行了舍入操作
7 console.log(oNumber1.toExponential(1)); //outpus 9.9e+1
8 console.log(oNumber1.toExponential(2)); //outpus 9.90e+1
9
10 var oNumber3=new Number(99);
11 console.log(oNumber3.toPrecision(0)); //outpus error precision 0 out of range
12 console.log(oNumber3.toPrecision(1)); //outpus 1e+2 進行了舍入操作
13 console.log(oNumber3.toPrecision(2)); //outpus 99
14 console.log(oNumber3.toPrecision(3)); //outpus 99.0

4、String類

  String對象的valueOf()方法和toString()方法都會返回String型的原始值:

1 var oStringObject=new String("Hello world");
2 console.log(oStringObject.valueOf() == oStringObject.toString());//outpus true

  String類具有length屬性,它是字符串中的字符個數,雙字節字符也算一個字符。

  String類有大量的方法,主要介紹如下:

  charAt(整型參數):返回字符串中單個字符。示例:

1 var oStringObject=new String("Hello world");
2 console.log(oStringObject.charAt(0));//outpus "H"
3 console.log(oStringObject.charAt(1));//outpus "e"
4 console.log(oStringObject.charAt(11));//outpus (an empty string)

  charCodeAt(整型參數):返回字符串中單個字符代碼。示例:

1 var oStringObject=new String("Hello world");
2 console.log(oStringObject.charCodeAt(0));//outpus "72"
3 console.log(oStringObject.charCodeAt(1));//outpus "101"
4 console.log(oStringObject.charCodeAt(11));//outpus NaN

  concat(字符串):把一個或多個字符串連接到String對象的原始值上。示例:

1 var oStringObject=new String("Hello world");
2 var sResult=oStringObject.concat(" Concat");
3 console.log(oStringObject);//outpus "String { 0="H", 1="e", 2="l", ...}"
4 console.log(sResult);//outpus "Hello world Concat"
5 alert(oStringObject);//outpus "Hello world"

  indexOf(字符串):返回指定的字符串在另一個字符串中的位置(從字符串的開頭進行檢索)。

  lastIndexOf(字符串):返回指定的字符串在另一個字符串中的位置(從字符串的結尾進行檢索)。示例:

1 var oStringObject=new String("Hello Hello");
2 console.log(oStringObject.indexOf("lo"));//outpus 3
3 console.log(oStringObject.lastIndexOf("lo"));//outpus 9

  localeCompare(字符串):對字符串進行排序,返回值是下列三個之一:

  A、如果String對象按照字母順序排在參數中的字符串之前,返回負數(通常是-1,但真正返回值由具體實現決定)

  B、如果String對象等于參數中的字符串,返回0

  C、如果String對象按照字母順序排在參數中的字符串之后,返回正數(通常是1,但真正返回值由具體實現決定)

  示例:

1 var oStringObject=new String("Hello");
2 console.log(oStringObject.localeCompare("aello")); //outpus 1
3 console.log(oStringObject.localeCompare("Hello")); //outpus 0
4 console.log(oStringObject.localeCompare("zello")); //outpus -1

  slice(整型參數[,整型參數])、substring(整型參數[,整型參數]):從子串創建字符串值。第一個參數是要獲取的子串的起始位置,第二個參數是要獲取的子串終止前的位置,如果省略第二參數,終止位就默認為字符串長度。這兩個方法都不改變String對象自身值。當參數為正時兩個方法用法及返回值均相同,只有參數有負值時才不同。對于負參數,slice()方法會用字符串的長度加上參數,substring()將其做為0處理。另外如果有兩個參數,第二個比第一個小時,slice()返回的值為空,substring()會把較小的作為第一個參數。為示例:

1 var oStringObject=new String("Hello World");
2 console.log(oStringObject.slice(3)); //outpus "lo World"
3 console.log(oStringObject.substring(3)); //outpus "lo World"
4 console.log(oStringObject.slice(3,7)); //outpus "lo W"
5 console.log(oStringObject.substring(3,7)); //outpus "lo W"
6 console.log(oStringObject.slice(3,0)); //outpus (an empty string)
7 console.log(oStringObject.substring(3,0)); //outpus "Hel"
8
9 console.log(oStringObject.slice(-3)); //outpus "rld"
10 console.log(oStringObject.substring(-3)); //outpus "Hello World"
11 console.log(oStringObject.slice(3,-4)); //outpus "lo W"
12 console.log(oStringObject.substring(3,-4)); //outpus "Hel"

  toLowerCase()、toLocaleLowerCase()、toUpperCase()、toLocaleUpperCase():前兩個用于把字符串轉換為全小寫,后兩個用于把字符串轉換為全大寫。toLowerCase()跟toUpperCase()是原始方法,toLocaleLowerCase()跟toLocaleUpperCase()是基于特定區域實現的。示例:

1 var oStringObject=new String("Hello World");
2 console.log(oStringObject.toLowerCase()); //outpus "hello world"
3 console.log(oStringObject.toLocaleLowerCase()); //outpus "hello world"
4 console.log(oStringObject.toUpperCase()); //outpus "HELLO WORLD"
5 console.log(oStringObject.toLocaleUpperCase()); //outpus "HELLO WORLD"

5、instanceof運算符

  ??在使用typeof運算符時采用引用類型存儲值會出現一個問題,無論引用的是什么類型的對象,它都返回"object"。ECMAScript引入了另一個運算符 instanceof 來解決這個問題。 instanceof運算符與typeof運算符相似,用于識別正在處理的對象的類型。與typeof方法不同的是,instanceof 方法要求開發者明確地確認對象為某特定類型。示例: 1 var oStringObject=new String("hello world");
2 alert(oStringObject instanceof String); //outpus "true"


本文轉自Artwl博客園博客,原文鏈接:http://www.cnblogs.com/artwl/,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的《JavaScript高级程序设计》阅读笔记(三):ECMAScript中的引用类型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。