day06字符串

字符串的概述

字符串基礎數據類型屬于值類型,值類型是不可以改變的.字符串的方法是不能被改變的,只能創(chuàng)建一個新的字符串,字符串所有的方法都是創(chuàng)建一個新的字符串.字符串也是一個數據結構, 數據結構的類型叫串,那么他也具備增刪查改的方法.

字符串的申明創(chuàng)建

第一種

var str="hello";單引號和雙引號都是字符串

第二種?

var str=new String();使用new關鍵詞 會重新開辟一個空間

new String 和String 的區(qū)別

new String會重新開辟空間

String只會進行簡單的轉換,轉換的值在棧上

es6新增字符串模板屬性 ``? ?

使用``可以識別對應變量

對應需要識別的變量通過`${變量名}`

擴展內容

1TB = 1024GB

1GB = 1024 MB

1MB = 1024 KB

1KB = 1024B

1B = 8個位

數值在對應的計算機內占幾個字節(jié)

數值是占一個字節(jié) 英文字符一般占一個字節(jié) 中文字符一般占倆個字節(jié)(根據對應的編碼來的)

字符串的相關方法 (字符串永遠不會被改變,只能重新聲明一個新變量接收改變后的字符串)

查詢的方法

indexOf(從前到后)

lastIndexOf (從后往前)

search (從前到后 不支持指定對應的開始位置 支持正則表達式)

手寫源碼實現indexOf方法和lastIndexOf方法

indexOf實現

var str = 'abcdefgabcdef'

//indexOf會返回第一次找到的下標 (從前到后)

console.log(str.indexOf('abc')); //0

console.log(str.indexOf('abc',0)); //默認后面的參數不寫就是從下標0開始

//從下標4開始找 從前往后找

console.log(str.indexOf('abc',4)); //7

//從下標10開始查找 找不到返回-1

console.log(str.indexOf('abc',10)); //-1

//lastIndexOf 從后往前找

console.log(str.lastIndexOf('abc'));//7

console.log(str.lastIndexOf('abc',str.length-1));//字符串的length表示對應的長度 不寫

對應的后面的位置就是默認從最后一位開始

//指定從下標4開始 從后往前查找

console.log(str.lastIndexOf('abc',4));//0

//指定下標從1開始找 從后往前找 (可以包含后面的內容)

console.log(str.lastIndexOf('abc',1));//0

//search方法使用跟indexOf一樣 但是search支持正則表達式 以及search不能指定開始位置 都是從0

位置開始

//search (從前到后)

console.log(str.search('abc')); //0

//當前這個正則表示查找abc 全局查找g以及不區(qū)分大小寫i

var regx = /abc/gi

console.log(str.search('abc')); //0

console.log(str.search(regx)); //0

// indexOf從前往后查找

var currentStr = 'abcdefgabc'

console.log(currentStr[0]);//a

//傳遞的參數是匹配的字符串

function myIndexOf(str,start){

if(typeof start == 'undefined'){

start = 0

}

//遍歷當前的字符串 我們可以通過對應的下標來訪問對應的字符串

var index = -1

//遍歷當前的字符串lastIndexOf

根據下標返回對應的字符串

charAt(根據下標返回字符串)

charCodeAt (根據下標返回對應字符串的ascii碼)

for(var i = start;i<currentStr.length-str.length+1;i++){

//聲明一個字符串進行拼接比較

var targetStr = currentStr[i]

//拼接字符串

for(var j=1;j<str.length;j++){

targetStr += currentStr[i+j]

}

//進行比較

if(targetStr == str){

index = i

break

}

}

return index;

}

console.log(myIndexOf('abc',1));

// lastIndexOf 從后往前查找

//傳遞的參數是匹配的字符串

function myLastIndexOf(str, start) {

if (typeof start == 'undefined') {

start = currentStr.length - 1

}

//遍歷當前的字符串 我們可以通過對應的下標來訪問對應的字符串

var index = -1

//遍歷當前的字符串

for (var i = start; i >= 0; i--) {

//聲明一個字符串進行拼接比較

var targetStr = currentStr[i]

//拼接字符串

for(var j=1;j<str.length;j++){

targetStr += currentStr[i+j]

}

//進行比較

if (targetStr == str) {

index = i

break

}

}

return index;

}

console.log(myLastIndexOf('abc', 1));

// 字符串跟數組一樣可以直接通過下標來訪問對應的字符

var str = 'hello'

console.log(str[0]); //h 返回下標為1的字符

//根據下標獲取對應的字符串

//根據下標獲取對應的字符串的ascii碼 找不到返回NaN

console.log(str.charCodeAt(0));//返回h的ascii碼 104

var str = 'hello'

//傳入的參數 開始的下標 結束的下標(不包含結束位置)

var str1 = str.slice(1,3)

console.log(str1);//el

var str1 = str.slice()//截取全部

console.log(str1);//hello

var str1 = str.slice(1)//從下標1截取到末尾

console.log(str1);//ello

var str1 = str.slice(-1)//從下標length-1截取到末尾

console.log(str1);//o

var str = 'abcdefg'

//substring 必須具備開始位置(不支持負值) 結束位置可以寫可以不寫

var str1 = str.substring(1) //從下標截取到結尾

console.log(str1);//bcdefg

var str1 = str.substring(2,5) //從下標2截取到下標5

console.log(str1);//cde

//substr 截取 開始位置 個數

var str = 'abcdefg'

var str1 = str.substr(1)//從下標1開始截取到末尾

console.log(str1);//bcdefg

var str1 = str.substr(1,3)//從下標1開始截取3個

console.log(str1);//bcd

//連接方法concat 相當+

var str = 'hello'

var str1 = str.concat('world')

console.log(str1);split 分割

match 匹配

replace 替換

replace高階函數用法

其他的輔助方法

去除前后空格

trim

轉大小寫

var regx = /abc/gi

var str = 'abc,Abc,Ab'

//search 查找 根據正則查找對應的下標 找不到返回-1(類似于indexOf)(number)

var index = str.search(regx)

console.log(index);//0

//split 分割的方法 將對應的字符串分割成對應的數組 (

Array)

var str = 'abc,Abc,Ab'

var regx = /,/gi

var splitArray = str.split(regx)

console.log(splitArray);

//match 匹配的 將匹配的內容(如果沒有g沒有只匹配第一個填入)填充到對應的數組返回 (

Array)

var regx = /abc/gi

var str = 'abc,Abc,Ab'

var matchArray = str.match(regx)

console.log(matchArray);//如果是全局匹配將獲取所有匹配的 如果不是全局只會拿到第一次找到的

//replace 替換的方法 將對應的內容替換成某個內容然后返回 (String)

var regx = /abc/gi

var str = 'abc,Abc,Ab'

var newStr = str.replace(regx,'hello')//只會替換第一次找到的 (如果對應的正則里面有g那么

全部替換否則只替換第一次找到的)

console.log(newStr);//如果沒有全局 那么只會替換一次 有的話會全部替換

// 所有的方法里面以函數作為的參數的函數稱為高階函數

// replace其實是一個高階函數

var str = '你好世界'

var str1 = str.replace('好',function(value){//這個value其實就是你匹配的值

console.log(value);

return value+'壞' //返回的值其實就你用于替換的值

})

console.log(str1);//你好壞世界

// trim 去除前后空格

var str = ' a b '

var str1 = str.trim()

console.log(str1);toUpperCase

toLowerCase

靜態(tài)方法 將ascii碼轉為字符串(使用類名.對應的方法 調用 使用static進行修飾)

fromCharCode

跟html標簽相關的方法(不重要)

sub 下標

fontcolor

fontsize

//轉大寫

var str = 'abcABcd'

var str1 = str.toUpperCase()//轉大寫

console.log(str1);

//轉小寫

var str = 'abcABcd'

var str1 = str.toLowerCase()//轉小寫

console.log(str1);

//靜態(tài)方法 使用對應的類名直接點 使用static進行修飾的 fromCharCode

var newStr = String.fromCharCode(97,98,99) //將ascii碼變成字符串

console.log(newStr);//abc

//返回一個sub標簽

var str = 'hello'

var sub = str.sub()

console.log(sub);

//fontColor 返回一個font標簽指定對應的顏色

var tag = str.fontcolor('red')

console.log(tag);

//fontSize 返回一個font標簽指定對應的字體大小

var tag = str.fontsize(30)

console.log(tag);字符串去除前后空格的方法 trim

Math類

概述:Math類是用于數學運算的个从。他里面的屬性及相關的方法都是靜態(tài)的(方便調用)。

屬性 property:

PI 圓周率Π

E 科學計數法

方法 function:

Math.max 最大值

Math.min 最小值

Math.pow 冪次方

Math.sqrt 開平方

Math.ceil 向上取整 *

Math.floor 向下取整 *

Math.round 四舍五入 *

Math.random 取隨機數(0-1隨機數 包含0不包含1)*

Math.abs 取絕對值

總結

字符串是基礎值類型羡棵,不能被更改蟋字。

字符串的length屬性是只讀的阁谆,不能更改。

字符串的方法都是以返回一個新的字符串為基準愉老,原本字符串不會受影響场绿。

支持正則的方法4個 search ,match 嫉入,split焰盗,replace

字符串的截取方法 slice ,substring 咒林,substr

indexOf根據對應的字符串獲取對應的下標 charAt是根據下標來獲取對應的字符串熬拒。

字符串擁有通過下標訪問的特性,以及具備length屬性垫竞。

字符串轉大寫的方法 toUpperCase澎粟,toLowerCase

字符串去除前后空格的方法 trim

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市欢瞪,隨后出現的幾起案子活烙,更是在濱河造成了極大的恐慌,老刑警劉巖遣鼓,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件啸盏,死亡現場離奇詭異,居然都是意外死亡骑祟,警方通過查閱死者的電腦和手機回懦,發(fā)現死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門气笙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人怯晕,你說我怎么就攤上這事潜圃。” “怎么了舟茶?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵秉犹,是天一觀的道長。 經常有香客問我稚晚,道長崇堵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任客燕,我火速辦了婚禮鸳劳,結果婚禮上,老公的妹妹穿的比我還像新娘也搓。我一直安慰自己赏廓,他們只是感情好,可當我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布傍妒。 她就那樣靜靜地躺著幔摸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪颤练。 梳的紋絲不亂的頭發(fā)上既忆,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天,我揣著相機與錄音嗦玖,去河邊找鬼患雇。 笑死,一個胖子當著我的面吹牛宇挫,可吹牛的內容都是我干的苛吱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼器瘪,長吁一口氣:“原來是場噩夢啊……” “哼翠储!你這毒婦竟也來了?” 一聲冷哼從身側響起橡疼,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤援所,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后衰齐,有當地人在樹林里發(fā)現了一具尸體任斋,經...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年耻涛,在試婚紗的時候發(fā)現自己被綠了废酷。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡抹缕,死狀恐怖澈蟆,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情卓研,我是刑警寧澤趴俘,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站奏赘,受9級特大地震影響寥闪,放射性物質發(fā)生泄漏。R本人自食惡果不足惜磨淌,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一疲憋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧梁只,春花似錦缚柳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至构舟,卻和暖如春灰追,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狗超。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工监嗜, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人抡谐。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓裁奇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親麦撵。 傳聞我的和親對象是個殘疾皇子刽肠,可洞房花燭夜當晚...
    茶點故事閱讀 43,499評論 2 348

推薦閱讀更多精彩內容

  • /1.什么是字符串? //就是由一組雙引號或單引號組成字符,就是字符串 //2.字符串的創(chuàng)建方式 ...
    寒非魚閱讀 130評論 0 0
  • 【es6字符串模板】1.反斜點 ··2.換行3.特殊符號不轉義4.可以插入變量 ${變量名}【es6字符串新增方法...
    含含要暴怒閱讀 757評論 0 1
  • 字符串 字符串概述 字符串也是一個數據結構(串),將同樣的內容串在一起免胃。因為在對應的js里面字符串屬于一個值類型(...
    富貴花開888閱讀 104評論 0 2
  • 常用的js字符串函數集合 一音五、其他數據類型轉換為字符串類型 (1).最直接的 給數據加引號(任何數據類型加上引號...
    Alexa_老王閱讀 753評論 1 1
  • 1.什么是字符串(str): python自帶的容器型數據類型(序列),不可變有序 python中的字符串使用單引...
    筱哥家的小跟班閱讀 179評論 0 0