成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

javascript 基本包裝類型總結(jié)

explorer_ddf / 1036人閱讀

摘要:實際上,每當(dāng)讀取一個基本類型值時,后臺就會創(chuàng)建一個對應(yīng)的基本包裝類型的對象。參數(shù)表示數(shù)值的所有數(shù)字的位數(shù)不包括指數(shù)部分。原因與顯示創(chuàng)建對象一樣類型重寫了,都返回對象表示的基本字符串值。轉(zhuǎn)換為針對地區(qū)的小寫方式。

讀《javasrcipt 高級程序設(shè)計》筆記。
ECMAScript提供了3種特殊的引用類型:Boolean,Number,String。實際上,每當(dāng)讀取一個基本類型值時,后臺就會創(chuàng)建一個對應(yīng)的基本包裝類型的對象。

Boolean類型

重寫了valueOf()方法,返回基本類型值true或false;
重寫了toString()方法,返回字符串"true"或"false"
【布爾表達式中的所有對象都會被轉(zhuǎn)換為true】
請看栗子

var falseObject = new Boolean(false);
var result = falseObject && true;//true

var falseValue = false;
result = falseValue && true;//false

console.log(typeof falseObject); //object
console.log(typeof falseValue); //boolean
console.log(falseObject instanceof Boolean);//true
console.log(falseValue instanceOf Boolean);//false

falseObject雖然值為false,但這是一個對象,所以被轉(zhuǎn)換為true。所以第一個result 為true。
基本類型與引用類型的布爾值的區(qū)別:

typeof對于基本類型返回boolean,對于引用類型返回Object

instanceOf測試Boolean對象返回true,測試基本類型返回false
【作者建議永遠不要用Boolean對象,容易造成誤解】

Number類型

重寫了valueOf()方法,返回對象表示的基本類型的數(shù)值
重寫了toLocaleString(),toString()方法。返回字符串形式的數(shù)值。

toString()方法,可以傳遞一個表示基數(shù)的參數(shù),則返回的值為該進制數(shù)值的字符串形式
var num = 10;
num.toString(); //"10"
num.toString(2); //"1010"二進制表示
num.toString(10); // "10" 十進制表示

toFixed()方法,按照指定的小數(shù)位返回數(shù)值的字符串表示,能夠自動舍入
var num = 10;
num.toFixed(2); // "10.00"
var num1 = 10.005;
num1.toFixed(2); // "10.01"

toExponential() 返回以指數(shù)表示的數(shù)值的字符串形式,參數(shù)為結(jié)果中的小數(shù)位數(shù)
var num = 10;
num.toExponential(1); // "1.0e+1"

toPrecision() 可能返回固定大小格式,可能返回指數(shù)格式。參數(shù)表示數(shù)值的所有數(shù)字的位數(shù)【不包括指數(shù)部分】。會自動舍入選擇最準(zhǔn)確的形式??梢员憩F(xiàn)1到21位小數(shù)。
var num = 99;
num.toPrecision(1); // "1e+2"
num.toPrecision(2); // "99"
num.toPrecision(3); // "99.0"
【仍不建議直接實例化Number對象。原因與顯示創(chuàng)建Boolean對象一樣】

String類型

重寫了valueOf()、toLocaleString()、toString(),都返回對象表示的基本字符串值。

length屬性 表示字符串中包含的字符

charAt() 以單字符字符串形式返回給定位置的字符。

charCodeAt() 以單字符字符串形式返回給定位置的字符編碼。

var stringValue = "hello world";
stringValue.charAt(1); //"e"
stringValue.charCodeAt(1); // "101"
//IE8及其他主流瀏覽器支持方括號方式訪問。
stringValue[1];// "e"

concat() 將一個或多個字符串拼接起來。

var stringValue = "hello ";
var result = stringValue.concat("world");//"hello world"
console.log(stringValue);//"hello "
//可接受任意多個參數(shù)【更普遍做法是:使用+加號操作符】
var result1 = stringValue.concat("world","!");//"hello world!"

slice() slice(start,end),截取start到end的字符串,不包括end。

substr() substr(start,n),截取從start開始的n個字符

substring() substring(start,end),截取從start到end的字符串,不包括end。

//都返回一個基本類型的字符串值,對原始字符串沒有任何影響
//若沒有制定第二個參數(shù),默認將字符串長度作為結(jié)束位置
var stringValue = "hello world";
stringValue.slice(3); //"lo world"
stringValue.substring(3); //"lo world"
stringValue.substr(3); //"lo world"

stringValue.slice(3,7); //"lo w"
stringValue.substring(3,7); //"lo w"
stringValue.substr(3,7); //"lo worl"

//負數(shù)情況
//slice會將傳入的負值與字符串長度相加
//substring會將所有負數(shù)轉(zhuǎn)換為0
//substr會將負數(shù)的第一個參數(shù)加上字符串長度,負的第二個參數(shù)轉(zhuǎn)換為0
stringValue.slice(-3);//"rld"
stringValue.substring(-3);//"hello world"
stringValue.substr(-3);//"rld"

stringValue.slice(3,-4);//"lo w"
stringValue.substring(3,-4);//"hel"
stringValue.substr(3,-4);//""空字符串

indexOf() 從字符串開頭向后搜索,返回子字符串的位置。沒有則返回-1

lastIndexOf() 從字符串末尾向后搜索,返回子字符串的位置。沒有則返回-1

//indexOf和lastIndexOf都接受第二個參數(shù),表示從字符串中的哪個位置開始搜索
//indexOf則是從參數(shù)指定位置向后搜索
//lastIndexOf則是從參數(shù)指定位置向前搜索
var stringValue = "hello world";
stringValue.indexOf("o"); // 4
stringValue.indexOf("o",6);// 7

trim() 創(chuàng)建字符串的副本,刪除前置及后綴的所有空格

toLowerCase() 轉(zhuǎn)換為小寫

toLocaleLowerCase() 。轉(zhuǎn)換為針對地區(qū)的小寫方式

toUpperCase() 。轉(zhuǎn)換為大寫

toLocaleUpperCase() 。轉(zhuǎn)換為針對地區(qū)的大寫方式

match() 本質(zhì)上與調(diào)用RegExp的exec()方法相同,只接受一個參數(shù),要么是正則表達式,要么是RegExp對象。

var text = "cat, bat, sat, fat";
var pattern = /.at/;

var matches = text.match(pattern);
console.log(matches.index); // 0
console.log(matches[0]); // "cat"
console.log(pattern.lastIndex);//0
console.log(matches); // ["cat", index: 0, input: "cat, bat, sat, fat"]

search() 參數(shù)要么是正則表達式,要么是RegExp對象。返回字符串中第一個匹配項的索引。沒有找到返回-1.【從字符串開頭向后查找】

var text = "cat, bat, sat, fat";
var pos = text.search(/at); //1

replace() 。替換子字符串。接受兩個參數(shù),第一個可以是RegExp對象或一個字符串,第二個字符串可以是一個字符串或一個函數(shù)。

var text = "cat, bat, sat, fat";
var result = text.replace("at","ond");//"cond, bat, sat, fat"
//若需要替換所有字符串,則需要提供一個正則表達式,并制定全局標(biāo)志g
result = text.replace(/at/g,"ond");//"cond,bond,sond,fond"

//只有在一個匹配項的情況下,會向這個函數(shù)傳遞3個參數(shù):模式匹配項、模式匹配項在字符串中的位置和原始字符串。
function htmlEscape(text){

   return text.replace(/[<>"&]/g, function(match, pos, originalText){
       switch(match){
           case "<":
               return "<";
           case ">":
               return ">";
           case "&":
               return "&";
           case """:
               return """;
       }
   });

}

htmlEscape("

Hello

");
//"

Hello

"

split() ?;谥贫ǚ指舴麑⒁粋€字符串分割成多個字符串

//接受可選的第二個參數(shù),用于指定數(shù)組大小
var colorText = "red,blue,green,yellow";
var color1 = colorText.split(",");//["red", "blue", "green", "yellow"]
var color2 = colorText.split(",",2);//["red", "blue"]
var color3 = colorText.split(/1+/);//["", ",", ",", ",", ""]
//正則表達式感覺一臉懵逼,看來明天要研究一下了。

localCompare() 比較兩個字符串。

字符串在字母表中排在參數(shù)之前,返回負數(shù)【一般是-1】
字符串相等,返回0
在參數(shù)之后,返回正數(shù)【一般是1】
var stringValue = "yellow";
stringValue.localeCompare("brisk"); //1
stringValue.localeCompare("yellow"); //0
stringValue.localeCompare("zoo"); //-1

, ?

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/79459.html

相關(guān)文章

  • JavaScript學(xué)習(xí)總結(jié)(一)基礎(chǔ)部分

    摘要:前綴規(guī)范每個局部變量都需要有一個類型前綴,按照類型可以分為表示字符串。例如,表示以上未涉及到的其他對象,例如,表示全局變量,例如,是一種區(qū)分大小寫的語言。布爾值與字符串相加將布爾值強制轉(zhuǎn)換為字符串。 基本概念 javascript是一門解釋型的語言,瀏覽器充當(dāng)解釋器。js執(zhí)行時,在同一個作用域內(nèi)是先解釋再執(zhí)行。解釋的時候會編譯function和var這兩個關(guān)鍵詞定義的變量,編譯完成后從...

    AlanKeene 評論0 收藏0
  • JavaScript-包裝對象

    摘要:三包裝對象的概念在中,一切皆對象,包括三種原始類型的值數(shù)值字符串布爾值,在一定條件下,也會自動轉(zhuǎn)為對象,也就是原始類型的包裝對象。每當(dāng)讀取數(shù)字字符串和布爾值的屬性或方法時,創(chuàng)建的臨時對象稱做包裝對象。 一、ECMAScript數(shù)據(jù)類型 (1)最新的 ECMAScript 標(biāo)準(zhǔn)定義了 7 種 數(shù)據(jù)類型: 6種 原型類型: Boolean. 布爾值,true 和 false. null...

    BakerJ 評論0 收藏0
  • JavaScript中的數(shù)據(jù)類型

    摘要:八進制字面值的第一位必須是,然后是八進制數(shù)字序列。十六進制字面量的前兩位必須是,后跟任何十六進制數(shù)字以及。而自動創(chuàng)建的基本包裝類型的對象,則只存在于一行代碼的執(zhí)行瞬間,然后立即銷毀。 前言 ECMAScript 迄今為止標(biāo)準(zhǔn)定義了 7 種數(shù)據(jù)類型:6 種原始類型-- String、Number、 Boolean、 Undefined、Null 和 Symbol;1 種引用類型-- O...

    szysky 評論0 收藏0
  • js基礎(chǔ)深入淺出

    摘要:當(dāng)多個事件觸發(fā)的時候,會把異步事件依次的放入里等同步事件執(zhí)行完之后,再去隊列里一個個執(zhí)行拾遺常用方法總結(jié)面試的信心來源于過硬的基礎(chǔ)參考高級程序設(shè)計你所不知道的深入淺出知識點思維導(dǎo)圖經(jīng)典實例總結(jié)那些剪不斷理還亂的關(guān)系 持續(xù)不斷更新。。。 基本類型和引用類型 vue props | Primitive vs Reference Types 基本類型和字面值之間的區(qū)別 基本類型和字面值相等,...

    phodal 評論0 收藏0
  • JavaScript即學(xué)即用教程[1]-類型系統(tǒng)

    摘要:如圖反而,由于這些的都是繼承自,所以原型鏈拐向了。因此這樣一個實例,他順著原型鏈?zhǔn)钦业搅巳鐖D選學(xué)內(nèi)容如果我們刨根問底,去尋找和的根源的話,那這個問題又稍微有點復(fù)雜了。 基本類型 Number, Boolean, String, null, undefined 什么樣的變量是 undefined 聲明了變量卻沒賦值 未聲明的變量 包裝類型 其實js里面也有像java,c#里所謂的包裝...

    toddmark 評論0 收藏0

發(fā)表評論

0條評論

explorer_ddf

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<