JavaScript字符串

一匠襟、嚴(yán)格模式(了解)

我們都知道 js 是一個(gè)相對(duì)不很?chē)?yán)謹(jǐn)?shù)恼Z(yǔ)言,而且開(kāi)發(fā)的時(shí)候兽狭,一些代碼也不是很?chē)?yán)格要求环揽,而嚴(yán)格模式就是對(duì)開(kāi)發(fā)的時(shí)候?qū)懙囊恍﹥?nèi)容做了要求

開(kāi)啟嚴(yán)格模式

想開(kāi)啟嚴(yán)格模式,直接在代碼最開(kāi)始的位置寫(xiě)上字符串 use strict

<script>

? ? 'use strtic'

? ? // 下面代碼書(shū)寫(xiě)就要按照嚴(yán)格模式來(lái)書(shū)寫(xiě)

</script>

嚴(yán)格模式的規(guī)則

聲明變量必須有 var 關(guān)鍵字

'use strtic'

varnum=100

num2=200// 這個(gè)就會(huì)報(bào)錯(cuò)

之前了解過(guò)吨拗,在聲明變量的時(shí)候满哪,如果沒(méi)有 var 關(guān)鍵字,那么按照作用域的規(guī)則會(huì)自動(dòng)定義成全局變量

嚴(yán)格模式下不可以劝篷,會(huì)報(bào)錯(cuò)

函數(shù)的行參不可以重復(fù)

'use strtic'

functionfn(p1,p1) {}// 直接就會(huì)報(bào)錯(cuò)

在非嚴(yán)格模式下哨鸭,函數(shù)兩個(gè)行參一樣,是不會(huì)報(bào)錯(cuò)的娇妓,只不過(guò)就是相當(dāng)于在函數(shù)內(nèi)部只有一個(gè)變量了

但是在嚴(yán)格模式下會(huì)報(bào)錯(cuò)

聲明式函數(shù)調(diào)用的時(shí)候函數(shù)內(nèi)部沒(méi)有 this

'use strtic'

functionfn() {

console.log(this)// undefined

}

fn()

本身像鸡,全局聲明式函數(shù)在調(diào)用的時(shí)候,函數(shù)內(nèi)部的 this 是指向 window 的

在嚴(yán)格模式下哈恰,是沒(méi)有 this 的

二只估、ES5 中常見(jiàn)的數(shù)組常用方法

之前我們講過(guò)的數(shù)組常用方法都是 ES3 的方法

今天來(lái)說(shuō)一些 ES5 中的方法

二-1、indexOf

indexOf 用來(lái)找到數(shù)組中某一項(xiàng)的索引

語(yǔ)法: indexOf(你要找的數(shù)組中的項(xiàng))

vararr=[1,2,3,4,5]

// 使用 indexOf 超找數(shù)組中的某一項(xiàng)

varindex=arr.indexOf(3)

console.log(index)// 2

我們要找的是數(shù)組中值為 3 的那一項(xiàng)

返回的就是值為 3 的那一項(xiàng)在該數(shù)組中的索引

如果你要找的內(nèi)容在數(shù)組中沒(méi)有蕊蝗,那么就會(huì)返回 -1

vararr=[1,2,3,4,5]


// 使用 indexOf 超找數(shù)組中的某一項(xiàng)

varindex=arr.indexOf(10)

console.log(index)// -1

你要找的值在數(shù)組中不存在仅乓,那么就會(huì)返回 -1

二-2、forEach

和 for 循環(huán)一個(gè)作用蓬戚,就是用來(lái)遍歷數(shù)組的

語(yǔ)法:arr.forEach(function (item, index, arr) {})

vararr=[1,2,3]

// 使用 forEach 遍歷數(shù)組

arr.forEach(function(item,index,arr) {

// item 就是數(shù)組中的每一項(xiàng)

// index 就是數(shù)組的索引

// arr 就是原始數(shù)組

console.log('數(shù)組的第 '+index+' 項(xiàng)的值是 '+item+'夸楣,原始數(shù)組是',arr)

})


forEach() 的時(shí)候傳遞的那個(gè)函數(shù),會(huì)根據(jù)數(shù)組的長(zhǎng)度執(zhí)行

數(shù)組的長(zhǎng)度是多少,這個(gè)函數(shù)就會(huì)執(zhí)行多少回

map

和 forEach 類(lèi)似豫喧,只不過(guò)可以對(duì)數(shù)組中的每一項(xiàng)進(jìn)行操作石洗,返回一個(gè)新的數(shù)組

vararr=[1,2,3]

三、使用 map 遍歷數(shù)組

varnewArr=arr.map(function(item,index,arr) {

// item 就是數(shù)組中的每一項(xiàng)

// index 就是數(shù)組的索引

// arr 就是原始數(shù)組

returnitem+10

})

console.log(newArr)// [11, 12, 13]

filter

和 map 的使用方式類(lèi)似紧显,按照我們的條件來(lái)篩選數(shù)組

把原始數(shù)組中滿足條件的篩選出來(lái)讲衫,組成一個(gè)新的數(shù)組返回

vararr=[1,2,3]

四、使用 filter 過(guò)濾數(shù)組

varnewArr=arr.filter(function(item,index,arr) {

// item 就是數(shù)組中的每一項(xiàng)

// index 就是數(shù)組的索引

// arr 就是原始數(shù)組

returnitem>1

})

console.log(newArr)// [2, 3]


我們?cè)O(shè)置的條件就是 > 1

返回的新數(shù)組就會(huì)是原始數(shù)組中所有 > 1 的項(xiàng)


五孵班、創(chuàng)建字符串(了解)

我們創(chuàng)建字符串也分為兩種方法 字面量構(gòu)造函數(shù)

字面量:

varstr='hello'

構(gòu)造函數(shù)創(chuàng)建

varstr=newString('hello')


五-1字符串的常用方法

我們操作字符串涉兽,也有一堆的方法來(lái)幫助我們操作

字符串和數(shù)組有一個(gè)一樣的地方,也是按照索引來(lái)排列的

charAt

charAt(索引)? 是找到字符串中指定索引位置的內(nèi)容返回

varstr='Jack'

// 使用 charAt 找到字符串中的某一個(gè)內(nèi)容

varindex=str.charAt(2)

console.log(index)// c

因?yàn)樽址彩前凑账饕M(jìn)行排列的篙程,也是同樣從 0 開(kāi)始

所以索引 2 的位置就是 c

如果沒(méi)有對(duì)應(yīng)的索引枷畏,那么就會(huì)返回 空字符串

varstr='Jack'

// 使用 charAt 找到字符串中的某一個(gè)內(nèi)容

varindex=str.charAt(10)

console.log(index)// ''

這個(gè)字符串根本沒(méi)有索引 10 的位置

所以就會(huì)返回一個(gè)空字符串 ''

charCodeAt

charCodeAt(索引) 就是返回對(duì)應(yīng)索引位置的 unicode 編碼

varstr='Jack'

// 使用 charAt 找到字符串中的某一個(gè)內(nèi)容

varindex=str.charCodeAt(0)

console.log(index)// 74

因?yàn)?J 在 unicode 對(duì)照表里面存儲(chǔ)的是 74,所以就會(huì)返回 74

indexOf

indexOf 就是按照字符找到對(duì)應(yīng)的索引

varstr='Jack'


// 使用 indexOf 找到對(duì)應(yīng)的索引

varindex=str.indexOf('J')

console.log(index)// 0

因?yàn)樽址?J 在字符串 Jack 中的索引位置是 0

所以會(huì)返回 0

substring

substring 是用來(lái)截取字符串使用的

語(yǔ)法: substring(從哪個(gè)索引開(kāi)始虱饿,到哪個(gè)索引截止)拥诡,包含開(kāi)始索引,不包含結(jié)束索引

varstr='hello'

// ? ? ? ? 01234

// 使用 substring 截取字符串

varnewStr=str.substring(1,3)

console.log(newStr)// el

從索引 1 開(kāi)始氮发,到索引 3 截止渴肉,包含前面的索引不包含后面的索引

所以返回的是 el


//substr

substr 也是用來(lái)截取字符串的

語(yǔ)法:substr(從哪個(gè)索引開(kāi)始,截取多少個(gè))

varstr='hello'

// ? ? ? ? 01234

// 使用 substr 截取字符串

varnewStr=str.substr(1,3)

console.log(newStr)// ell

這個(gè)方法和 substring 不一樣的是爽冕,第二個(gè)參數(shù)是截取多少個(gè)

從索引 1 開(kāi)始仇祭,截取 3 個(gè),所以得到的是 ell

toLowerCase 和 toUpperCase

這兩個(gè)方法分別使用用來(lái)給字符串轉(zhuǎn)成 小寫(xiě)字母 和 大寫(xiě)字母 的

varstr=hello


// 使用 toUpperCase 轉(zhuǎn)換成大寫(xiě)

varupper=str.toUpperCase()

console.log(upper)// HELLO

// 使用 toLowerCase 轉(zhuǎn)換成小寫(xiě)

varlower=upper.toLowerCase()

console.log(lower)// hello

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末扇售,一起剝皮案震驚了整個(gè)濱河市前塔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌承冰,老刑警劉巖华弓,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異困乒,居然都是意外死亡寂屏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)娜搂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)迁霎,“玉大人,你說(shuō)我怎么就攤上這事百宇】剂” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵携御,是天一觀的道長(zhǎng)昌粤。 經(jīng)常有香客問(wèn)我既绕,道長(zhǎng),這世上最難降的妖魔是什么涮坐? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任凄贩,我火速辦了婚禮,結(jié)果婚禮上袱讹,老公的妹妹穿的比我還像新娘疲扎。我一直安慰自己,他們只是感情好捷雕,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布椒丧。 她就那樣靜靜地躺著,像睡著了一般非区。 火紅的嫁衣襯著肌膚如雪瓜挽。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,842評(píng)論 1 290
  • 那天征绸,我揣著相機(jī)與錄音,去河邊找鬼俄占。 笑死管怠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缸榄。 我是一名探鬼主播渤弛,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼甚带!你這毒婦竟也來(lái)了她肯?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤鹰贵,失蹤者是張志新(化名)和其女友劉穎晴氨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體碉输,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡籽前,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了敷钾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片枝哄。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖阻荒,靈堂內(nèi)的尸體忽然破棺而出挠锥,到底是詐尸還是另有隱情,我是刑警寧澤侨赡,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布蓖租,位于F島的核電站纱控,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏菜秦。R本人自食惡果不足惜甜害,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望球昨。 院中可真熱鬧尔店,春花似錦、人聲如沸主慰。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)共螺。三九已至该肴,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間藐不,已是汗流浹背匀哄。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雏蛮,地道東北人涎嚼。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像挑秉,于是被迫代替她去往敵國(guó)和親法梯。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容