摘要:而自動創建的基本包裝類型的對象,則只存在于一行代碼的執行瞬間,然后立即銷毀。對基本包裝類型的實例調用會返回,而且所有基本包裝類型的對象在轉換為布爾類型時值都是。使用調用基本包裝類型的構造函數,與直接調用同名的轉型函數是不一樣的。
基本包裝類型
3個特殊的引用類型:Boolean、Number、String
var box = "Mr. Lee"; //基本類型 alert(box.substring(2)); //打印 . Lee //對象.方法(參數)這種寫法明顯是引用類型寫法 //索引0開始,從第二個位置開始開始截取到末尾 //是基本類型,但又是特殊的引用類型,叫做基本包裝類型 //因為它可以調用系統內置的方法
引用類型與基本包裝類型的主要區別就是對象的生存期。
為什么基本類型不能添加屬性?
原因:使用new操作符創建的引用類型實例,在執行流離開當前作用域之前都一直保存在內存中。而自動創建的基本包裝類型的對象,則只存在于一行代碼的執行瞬間,然后立即銷毀。這意味著我們不能在運行時為基本類型值添加屬性和方法。
基本包裝類型無法給自己創建屬性和方法,但是可以調用系統內置的屬性和方法。
對基本包裝類型的實例調用typeof會返回object,而且所有基本包裝類型的對象在轉換為布爾類型時值都是true。
使用new調用基本包裝類型的構造函數,與直接調用同名的轉型函數是不一樣的。
var value = "25"; var number = Number(value); //轉型函數 aleat(typeof number); //"number" var obj = new Number(value); //構造函數 aleat(typeof obj); //"object"Number類型
Number類型有一些靜態屬性(直接通過Number調用的屬性,而無須new運算符)和方
法。
Number靜態屬性
屬性 | 描述 |
---|---|
MAX_VALUE | 表示最大數 |
MIN_VALUE | 表示最小值 |
NaN | 非數值 |
NEGATIVE_INFINITY | 負無窮大,溢出返回該值 |
POSITIVE_INFINITY | 無窮大,溢出返回該值 |
prototype | 原型,用于增加新屬性和方法 |
例:
var box = 100; alert(box.MAX_VALUE); //沒有這種寫法,這種寫法叫做屬性 alert(Number.MAX_VALUE); //這種寫法(類型.屬性)叫做靜態屬性
Number對象的方法
方法 | 描述 |
---|---|
toString() | 將數值轉化為字符串,并且可以轉換進制 |
toLocaleString() | 根據本地數字格式轉換為字符串 |
toFixed() | 將數字保留小數點后指定位數并轉化為字符串 |
toExponential() | 將數字以指數形式表示,保留小數點后指定位數并轉化為字符串 |
toPrecision() | 指數形式或點形式表述數,保留小數點后面指定位數并轉字符串 |
String類型包含了三個屬性和大量的可用內置方法。
String對象屬性
屬性 | 描述 |
---|---|
length | 返回字符串的字符長度 |
constructor | 返回創建String對象的函數 |
prototype | 通過添加屬性和方法擴展字符串定義 |
例:
var box = "Mr. Lee"; alert(box.constructor); //打印:? String() { [native code] }
字符串方法
方法 | 描述 |
---|---|
charAt(n) | 返回指定索引位置的字符 |
charCodeAt(n) | 以Unicode編碼形式返回指定索引位置的字符 |
fromCharCode(ascii) | 靜態方法,輸出Ascii碼對應值 |
例:
var box = "Mr. Lee"; alert(box.charAt(1)); //打印r,等于box[1] alert(box.charCodeAt(4)); //打印76
方法 | 描述 |
---|---|
concat() | 拼接字符串 |
slice(n,m) | 返回字符串n到m之間位置的字符串,[n,m) |
substring(n,m) | 同上 |
substr(n,m) | 返回字符串n開始的m個字母 |
slice()`substring()第2`個參數指定的是字符串中最后一個字符的位置。
substr()第2個參數是返回字符的個數。
相同點:如果沒有第2個參數,則一直獲取到最后。他們不會改變字符串本身的值。
例:
var box = "Mr. Lee"; alert(box.concat(" is ","teacher!"));//字符串拼接,打印:Mr. Lee is teacher! alert(box.slice(4,6)); //截取字符串[4,6),打?。篖e alert(box.substring(4,6)); //截取字符串[4,6),打印:Le alert(box.substr(4,2)); //從索引4位置截取2個字符,打?。篖e alert(box.slice(4)); //如果沒有第2個參數,則一直獲取到最后一位,打印:Lee alert(box.substring(4)); //如果沒有第2個參數,則一直獲取到最后一位,打?。篖ee alert(box.substr(4)); //如果沒有第2個參數,則一直獲取到最后一位,打?。篖ee alert(box.slice(-2)); //7+(-2)=5,從索引5位置開始到最后,打?。篹e alert(box.substring(-2)); //參數為負數,則返回全部字符串,打印:Mr. Lee alert(box.substr(-2)); //7+(-2)=5,從索引5位置開始到最后,打?。篹e alert(box.slice(2,-1)); //7+(-1)=6,[2,6),打?。? Le alert(box.substring(2,-1)); //如果參數為負數,直接0;如果第2個參數比第1個小,那么第2個參數提前,[0,2),打?。篗r alert(box.substr(2,-1)); //第2個參數為負數,直接0,[2,0),空,打?。嚎?
方法 | 描述 |
---|---|
indexOf(str,n) | 從初始位置搜索n第1次出現的位置,并將搜索的索引值返回 |
lastIndexOf(str,n) | 從末尾位置搜索n第1次出現的位置,并將搜索的索引值返回 |
例:
var box = "Mr. Lee is Lee"; alert(box.indexOf("L")); //從初始位置搜索L第一次出現的位置,打印:4 alert(box.lastIndexOf("L")); //從末尾位置搜索L第一次出現的位置,打?。?1 alert(box.indexOf("L",5)); //從索引5位置向后搜索L第一次出現的位置,打?。?1 alert(box.lastIndexOf("L",5)); //從索引5位置向前搜索L第一次出現的位置,打印:4 alert(box.indexOf(-1)); //找不到,打?。?1
indexOf應用實例:
var box = "Lorem ipsum dolor sit amet,consectetur adipisicing elit"; var postion = new Array(); var pos = box.indexOf("e"); while(pos > -1){ //pos>-1,說明找到字符串 postion.push(pos); // 用push推入數組 pos = box.indexOf("e", pos + 1); //pos+1,從e后一個位置在開始尋找。 } alert(postion); //打?。?,24,31,34,51
字符串的模式匹配方法
方法 | 描述 |
---|---|
match(pattern) | 返回pattern中的子串或null |
replace(pattern, replacement) | 用replacement替換pattern |
search(pattern) | 返回字符串中pattern開始位置 |
split(pattern) | 返回字符串按指定pattern拆分的數組 |
例:
var box = "Mr.Lee is Lee"; alert(box.match("L")); //找到L,打?。篖 否則打印:null alert(box.search("L")); //找到L的位置,打?。? alert(box.replace("L", "Q")); //把L替換成Q,打?。篗r.Qee is Lee alert(box.split(" ")); //以空格分割成字符串,打印:Mr.Lee,is,Lee
localeCompare()方法,比較兩個字符串,并返回下列值中一個:
如果比較的字符串首字母比變量的首字母排在前,返回1
如果比較的字符串首字母和變量的首字母排相等,返回0
如果比較的字符串首字母比變量的首字母排在后,返回-1
例:
var box = "yellow"; alert(box.localeCompare("brick")); //打印:1 alert(box.localeCompare("yellow")); //打印:0 alert(box.localeCompare("zoo")); //打印:-1
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/94490.html
摘要:基本類型引用類型等,說白了就是對象。。。基本包裝類型如下基本類型毫無疑問上面的是一個基本類型,但是它卻能召喚出一個的方法,這是什么原因呢主要是因為在基本類型中,有三個比較特殊的存在就是,這三個基本類型都有自己對應的包裝對象。 基本類型:Undefined,Null,Boolean,Number,String 引用類型:Object,Array,Date,RegExp等,說白了就是對象。...
摘要:今天來討論一下中的基本包裝對象也叫基本包裝類型,之前剛學到這里的時候,自己也是一頭霧水,不明白這個基本包裝對象到底是個什么鬼,后來找了很多資料,終于看清了它的真面目。基本類型引用類型等,說白了就是對象。。。 今天來討論一下JS中的基本包裝對象(也叫基本包裝類型),之前剛學到這里的時候,自己也是一頭霧水,不明白這個基本包裝對象到底是個什么鬼,后來找了很多資料,終于看清了它的真面目。首先呢...
摘要:但是基本數據類型不是對象,不具備對象的特性不攜帶屬性沒有方法可調用。自動裝箱即直接賦值將會比使用構造方法的方式節省一塊堆內存空間,并自動入對象池。而手動裝箱使用構造方法會產生兩塊堆內存,而且不會保存在對象池中。 概念 java在設計之初,有一個基本原則:一切皆對象。但是基本數據類型不是對象,不具備對象的特性——不攜帶屬性、沒有方法可調用。為了解決此類問題,Java為每種基本數據類型分別...
摘要:前陣子,我們分享了中的基本數據類型轉換這篇文章,對許多粉絲還是有帶來幫助的,今天講一下包裝類的的由來,及自動裝箱拆箱的概念和原理。下面是基本數據類型與對應的包裝類型。 showImg(https://segmentfault.com/img/remote/1460000016537706); 前陣子,我們分享了《Java中的基本數據類型轉換》這篇文章,對許多粉絲還是有帶來幫助的,今天講...
摘要:目錄導語包裝對象的理解三大包裝對象的知識點小結導語包裝對象是為了彌補基本數據類型的非對象特性而產生的,對于基本類型值而言,本來是不存在屬性和方法的,但是我們可以在使用字面量創建字符串時,調用例如的方法,那么其內在原理究竟是什么呢閱讀完本篇文 目錄 導語 1. 包裝對象的理解 2. 三大包裝對象的知識點 3. 小結 導語 包裝對象是為了彌補基本數據類型的非對象特性而產生的,對于基本類型...
摘要:每當讀取這個基本類型時,后臺會創建一個對應的基本包裝類型的對象。類型判斷主要是用來判斷基本數據類型返回類型新增所以只能用來判斷基本數據類型。引用類型基本包裝類型都會返回。 最近重溫JS高程設計以及與朋友的討論。決定趁熱打鐵記錄JS的各種類型,并做下深入總結。 js的幾種類型 基本類型:Boolean、String、Number、Null、Undefined 引用類型: 2.1 O...
閱讀 3401·2021-10-08 10:15
閱讀 5441·2021-09-23 11:56
閱讀 1467·2019-08-30 15:55
閱讀 445·2019-08-29 16:05
閱讀 2725·2019-08-29 12:34
閱讀 2036·2019-08-29 12:18
閱讀 914·2019-08-26 12:02
閱讀 1650·2019-08-26 12:00