字符串

字符串

1. 創(chuàng)建字符串(掌握)

  • JS中的字符串是不可變的末患!
  • 任何涉及到字符串變化的操作都不會(huì)改變?cè)甲址?/li>
  • 都是從新創(chuàng)建一個(gè)新的字符串

JS中有兩種字符串扒吁。

1. 基本類型的字符串

1.字符串直接量

var str = "MR_LP";     //str 基本類型的字符串 
console.log(typeof str);//彈出: String

2.轉(zhuǎn)換函數(shù)(注意:沒(méi)有new 關(guān)鍵字的)

var str = String(123);   
//把基本數(shù)據(jù)類型的Number
//轉(zhuǎn)化為基本數(shù)據(jù)類型的String
console.log(typeof str); // 彈出 : String

3.引用類型

  • 通過(guò)new 關(guān)鍵字來(lái)使用String()構(gòu)造方法
  • 獲取到的一個(gè)對(duì)象菊匿,是引用類型Object....
var str = new String("asd");
console.log(typeof str);//彈出:Object
  1. 對(duì)象類型

2. 字符串的length屬性(了解)

字符串的length 屬性的值表示的是字符串中字符的個(gè)數(shù)

var str1 = "MR_LP";       //5
vvar str2 = "大家新年好"狭莱;//5
  • length 是屬性奥裸,所以在使用的時(shí)候不需要添加括號(hào)
  • 只有調(diào)用方法或者函數(shù)時(shí)候,才會(huì)添加括號(hào)

3. 字符串常用方法(重點(diǎn))

1. 字符相關(guān)方法

s.charAt(index)
參數(shù):
index
* 必選參數(shù)
表示字符串中某一個(gè)位置的數(shù)字
字符在字符串中的下標(biāo)
返回值:
* 返回的是指定位置的字符
* JS中沒(méi)有字符類型
* 返回的實(shí)際是一個(gè)長(zhǎng)度為1 的字符串

    大家也可以想象為一個(gè)數(shù)組池颈,具體下標(biāo)是0 尾序,
    直到最后一個(gè)下標(biāo)(str.length -1)
 var str = "你好呀李先生";
 console.log(str.charAt(0));//你
 console.log(str.charAt(2));//呀

2. 返回指定字符的Unicode 編碼

str.charCodeAt(index)

  • 返回指定字符的Unicode 編碼
  • 返回值范圍是0~65535 之間的整數(shù)
var str = “aA0你好”
console.log(str.charCodeAt(0) );//97
console.log(str.charCodeAt(2) );//
console.log(str.charCodeAt(5) );//

3. unicode 編碼中需要記住的數(shù)值

  • a ~ z
  • A ~ Z
  • 0 ~ 9
  • 0 ——> 48
  • 9 ——> 57
  • A ——> 65
  • Z ——> 90
  • a ——> 97
  • z ——> 122

4. 字符串連接方法

  • 平常工作中經(jīng)常使用“ + ”進(jìn)行連接
  • str.concat(str1..)
  • 該方法用于連接兩個(gè)或者多個(gè)字符串
var str = "你好"躯砰;
console.log(str.concat("啊李先生"));//你好啊李先生
console.log(str+"啊"+"李先生");//你好啊李先生

console.log(str.concat("")== str);//true

caocat()如果連接的是一個(gè)長(zhǎng)度為0的字符串
則會(huì)返回這個(gè)字符串本身(this)

查找字符串出現(xiàn)位置

查找數(shù)組:index

查找字符串:

str.indexOf(searchValue,fromIndex)

該方法返回某個(gè)指定的字符串在字符串中首次出現(xiàn)的位置

參數(shù):

  • searchValue 必選參數(shù)
    • 規(guī)定需要檢索的字符串?dāng)?shù)值
  • fromIndex 可選參數(shù)
    • 規(guī)定 .字符串檢索的起始位置
    • 如果省略每币,則從字符串首字母開(kāi)始
var str = "abcdefghikab";
console.log(str.indexOf("ab"));//0
console.log(str.indexOf("ab",1));//11
console.log(str.indexOf("z"));//-1

str.lastIndexOf(searchValue,fromIndex)

  • 該方法返回一個(gè)指定字符串最后出現(xiàn)的位置
  • 在一個(gè)字符串中從后往前檢索
var str = "efabcedf";
console.log(str.lastIndexOf("ef"));//6
console.log(str.lastIndexOf("ef",5));//0
console.log(str.lastIndexOf("ef"6));//6
console.log(str.lastIndexOf("ef"-1));//0

截取

數(shù)組的截取是:...

字符串的截取

str.substring(start,end)

  • 該方法用于提取字符串中兩個(gè)指定下標(biāo)之間的內(nèi)容
  • 參數(shù)
    • start 必選參數(shù)
      • 給出一個(gè)非負(fù)的整數(shù)
    • end 可選參數(shù)
      • 給出一個(gè)非負(fù)的整數(shù)
      • 如果省略,則代表截取到
      • 字符串的結(jié)尾
      • 截取不包括結(jié)束位置的元素
var str = "董小姐琢歇,你嘴角向下的時(shí)候很美"兰怠;
console.log(str.substring(1));//小姐,你嘴角向下的時(shí)候很美
console.log(str.substring(1,3));小姐
console.log(str.substring(-1李茫,-3));
console.log(str.substring(5,3));

如果開(kāi)始大于結(jié)束對(duì)字符串沒(méi)有影響

str.substr(start,length)

參數(shù)

  • start 必選參數(shù)
    • 要截取的字符串的起始位置
    • 如果是負(fù)數(shù)揭保,計(jì)算從字符串的尾部開(kāi)始截取
  • length 可選參數(shù)
    • 截取字符串中的長(zhǎng)度
    • 如果省略,則代表
    • 完整截绕呛辍(截取到尾部)
var str = "二十四橋明月夜秸侣,何處玉人教吹簫";
console.log(str.substr(1));
console.log(str.substr(1,3));
console.log(str.substr(1,-3));// 空

在ECMA....
在IE 4 中,start 無(wú)效
開(kāi)始位置強(qiáng)制為0

str.slice(start,end)

  • 該方法用于提取字符串中的某個(gè)位置
  • 并且新字符串返回...
  • slice()可以支持負(fù)值
  • 參數(shù):
    • start
    • 截取開(kāi)始位置
    • end
    • 截取結(jié)束位置
var str = "生命乘客改宠互,愛(ài)情價(jià)更高";
console.log(str,slice(0,1));
console.log(str,slice(-3,1));

結(jié)束不能為0...

三中截取方式之間的差別

  1. substring()
  2. substr()
  3. slice()
    三者之間最大的差別在于 如果傳遞的參數(shù)為負(fù)數(shù)
  4. substring() 會(huì)將所有的負(fù)數(shù)參數(shù)轉(zhuǎn)為0
  5. substr()會(huì)將第一個(gè)負(fù)數(shù)參數(shù)加上字符串的長(zhǎng)度味榛,第二個(gè)負(fù)數(shù)轉(zhuǎn)化為0
  6. slice() 會(huì)將負(fù)值和字符串的長(zhǎng)度相加
var str = "hell world ";//長(zhǎng)度為11
//結(jié)果 : he
var ret1 = str substring(2,-8);
//結(jié)果 : 空
var ret2 = str substr(2,-8);

//結(jié)果 : l
var ret3 = str slice(2,-8);

字符串的大小寫(xiě)轉(zhuǎn)換

給之前文字大小寫(xiě)轉(zhuǎn)換用的是什么?
屬性予跌?chuansifou..?最近還有寫(xiě)頁(yè)面嗎搏色?
文字顏色,下滑線 上劃線券册,對(duì)其频轿,設(shè)置文字的英文的大小寫(xiě)
文字傾斜是什么?文字粗體烁焙?-》文字大小寫(xiě)

str.toUpperCase() 轉(zhuǎn)換為大寫(xiě)

str.toUpperCase()

  • 該方法將字符串中所有字符轉(zhuǎn)換為大寫(xiě)

str.toLowerCase()轉(zhuǎn)換為小寫(xiě)

str.toLowerCase()

  • 該方法將字符串中所有字符轉(zhuǎn)換為小寫(xiě)
var ...

《黑客究竟是一群什么人》下午分享
精神:提倡信息和資源的共享航邢,反對(duì)商業(yè)壟斷。

  1. George Hotz
  2. Cracker
  3. Script Kiddie
  4. (冰人)馬克斯 維京 ——> 網(wǎng)絡(luò)犯罪之人
  5. 90 年代 紛紛投身 互聯(lián)網(wǎng)
  6. 網(wǎng)絡(luò)安全: 安全咨詢骄蝇,殺毒軟件

字符串方法中的lastIndexOf()

參數(shù):

  • searchValue:
    • 查找的內(nèi)容
  • fromIndex:
    • 搜索的范圍
  • 通過(guò)網(wǎng)上查詢
  • 不過(guò)之后翠忠,是班上的學(xué)生進(jìn)行了解,課后老師是說(shuō)會(huì)查詢

去除字符串中的首尾的空白字符

str.trim()

  • 該方法是用于去除字符串中首尾
  • 所有的空白字符
  • 對(duì)字符串內(nèi)部的空白字符不做任何處理
var str ="\n \t abc    ABC  \t \n";
alert(str.trim());

字符串的替換方法

三種方法

1. replace()

replace(regExp/substr,replaceElement)

  • regExp/substr:
    • 必選參數(shù)
    • regExp -> 正則表達(dá)式
    • substr -> 字符串
    • 需要注意的乞榨,如果第一個(gè)值是字符串
    • 則將這個(gè)字符串作為檢索的直接量
    • 而不是去查看是否能夠轉(zhuǎn)化為 regExp
  • replaceElement
    • 必選參數(shù)
    • 規(guī)定了替換文本秽之,或者生成替換文本的函數(shù)
    • 一般為 一個(gè)字符串值
var str = "abcabc";
var newStr = str.replace("ab","**");//**cabc
console.log(newStr);

替換只針對(duì)檢索到的第一個(gè)匹配到...

console.log(str.replace(/ab/ig,"**"));//**cabc
console.log(str.replace(/ab/g,"**"));//**c**c
console.log(str.replace(/AB/gi,"**"));//**cabc
gi

g:

  • 正則對(duì)象的修飾符,表示匹配時(shí)進(jìn)行全局匹配
  • (當(dāng)前字符中全部進(jìn)行替換)
    i:
  • 正則對(duì)象中的修飾符吃既,
  • 表示匹配的時(shí)候不區(qū)分大小寫(xiě)

2. match()

.match(匹配值)

  • 在字符串用于在字符串中檢索指定的值

  • 匹配的參數(shù)只有一個(gè)

  • 要么是正則表達(dá)式

  • 要么是字符串

  • 返回值:

  • 存放匹配結(jié)果的數(shù)組

var str = "abcabc";
var arr = str.match("ab");
console.loge(arr);

console.log(str.match(/ab/gi));
var str = "2017年02月08日15:25:30"考榨;
var num = time.match(/\d+/gi);
console.log

3. search()

str.search(匹配的參數(shù))

  • 匹配的參數(shù)只有一個(gè),要么是正則表達(dá)式

  • 要么是字符串

  • 返回值:

    • 第一個(gè)匹配項(xiàng)的索引鹦倚,
    • 如果沒(méi)有找到河质,則返回 -1
  • 不支持全局匹配 ...

var str = "abcabc";
var arr = str.search("ab");

console.log(arr);   //0
console.log(str.search(/ab/gi));//0

字符串的比較

~ 和字符串很類似 ~

1. ==

var str1 = "今天是個(gè)好日子";
var str2 = new String"今天是個(gè)好日子";
console.log(str1 ==str2);//true

雖然兩個(gè)字符串一個(gè)是基本類型
另外一個(gè)是引用類型對(duì)象
但是他們的內(nèi)容是相等的掀鹅,所以返回的true

2. ===

var str1 = "哈哈";
var str2 = String"哈哈";
var str3 = new String "哈哈";
var str4 = new String "哈哈";

// 內(nèi)容和類型都相等散休,所以恒等
console.log(str1 === str2);//true

// 雖然內(nèi)容相等,但是類型不同乐尊,所以不算恒等
console.log(str1 === str3);//false

//3和4雖然內(nèi)容類型都相等戚丸,
// 但他們是對(duì)象,必須是一個(gè)對(duì)象才能恒等
console.log(str3 === str4);//false

3. str.localeCompare()

str.localeCompare(other)

  • 如果字符串在字母表中排在字符串參數(shù)之前扔嵌,
  • 則返回一個(gè)負(fù)數(shù)
  • 如果字符串等于字符串參數(shù)限府,則返回 0
  • 如果字符串在字母表中排在字符串參數(shù)之后,
  • 則返回一個(gè)正數(shù)
var str = "b";
var compare_1 = str.localeCompare("a");
console.log(compare_1);//1
var str1 = "李"痢缎;
var str2 = "趙";
var compare_1 = str1.localeCompare(str2);
var str3 = "aa";
var str4 = "ab";
console.log(str3.localeCompare(str4));

字符串的切割

str.split()

str.split(separator,howmany)

  • separator :
    • 必選參數(shù)
    • 字符串或者正則表達(dá)式胁勺,
    • 從該參數(shù)指定的位置進(jìn)行切割
  • howmany:
    • 可選參數(shù)
    • 該參數(shù)指定可返回的
    • 數(shù)組的最大長(zhǎng)度
    • 如果設(shè)置了該參數(shù),
    • 返回的子串不會(huì)多于這個(gè)參數(shù)
    • 如果沒(méi)有設(shè)置独旷,則不考慮長(zhǎng)度
    • 將字符串全部切割
    • 一般不設(shè)置該參數(shù)
var str = "how oud ra you ";
....

Math 對(duì)象

Math 主要用于做一些數(shù)學(xué)上的運(yùn)算

  • 平方署穗,開(kāi)方,絕對(duì)值嵌洼,三角函數(shù)...
  • 數(shù)學(xué)常用屬性:π (pai)
console.log(Math.PI);

數(shù)學(xué)常用屬性:E 自然對(duì)數(shù)的底數(shù)2.7 ...

console.log(Math.E);

絕對(duì)值

console.log(Math.abs(5));
console.log(Math.abs(-5));//5

最大值

console.log(Math.max(5,60,80,4));//80

最小值

console.log(Math.min(5,60,80,4));//4

返回大于等于 number 的最小整數(shù)(向上取整)

console.log(Math.ceil(13,14));//14
console.log(Math.ceil(13,-14));//13

返回大于等于 number 的最大整數(shù)(向下取整)

console.log(Math.floor(13,14));//13
console.log(Math.ceil(-13,14));//-14

四舍五入

console.log(Math.round(13.4));//13
console.log(Math.round(13.5));//14
console.log(Math.round(-13.4));//-13
console.log(Math.round(-13.5));//-14

指數(shù)

console.log(Math.pow(2,3));//8

平方根

console.log(Math.sqrt(4));//2

隨機(jī)數(shù)(偽隨機(jī)數(shù))(用的特別多)

console.log(Math.random());//隨機(jī)小數(shù)

隨機(jī)數(shù)函數(shù)

  • 返回是是0~1之間的隨機(jī)小數(shù)
  • 不包括0和1

三角函數(shù)(做特設(shè)效果)

console.log(Math.sin(Math.PI / 4));//45正弦
console.log(Math.cos(Math.PI / 4));//45余弦
console.log(Math.tan(Math.PI / 4));//45正切
  • 存在精度問(wèn)題
  • 反弦都是由這個(gè)基礎(chǔ)演變過(guò)去的
隨機(jī)數(shù)函數(shù)
  1. 寫(xiě)好注
  2. 留好退路
  3. 目標(biāo):
  • 創(chuàng)建一個(gè)函數(shù)案疲,我們可以自己控制
  • 輸出的隨機(jī)數(shù) 的 區(qū)間
  • 預(yù)留參數(shù):
  1. 隨機(jī)數(shù)區(qū)間的最大值
  2. 隨機(jī)數(shù)區(qū)間的最小值
  • 函數(shù)的名稱:
    • getRandom
  • 函數(shù)的實(shí)現(xiàn)過(guò)程:
    • Math.random()

    • 返回是 0 ~ 1

    • 給當(dāng)前這個(gè)隨機(jī)數(shù) 放大

    • 做出最大值限制

      • 將最大值和最小值進(jìn)行相減
      • 將差值 + 1
    • 封裝

    • 在封裝前注意設(shè)限制

    • 例如:最大值原本就是這個(gè)然后由于隨機(jī)數(shù)

    • 導(dǎo)致錯(cuò)誤例如隨機(jī)出0.9999

    • ... 查看生成隨機(jī)數(shù)代碼

function Random(min,max){
    var rand = Math.random()*(max-min +1);
 /   rad = Math.floor(rand)+min;
  /  return rand;
}

傳入一個(gè)3 傳入一個(gè)9
0.99999* (9 - 3 + 1)
0.8888666*(9 -3 +1)
0.8888666*7
6.2
rand = Math.floor(rand) + min;
return rand;
}
for(var i = ... )

明天寫(xiě):(BOM):與瀏覽器交互的方法和接口
(DOW)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咱台,隨后出現(xiàn)的幾起案子络拌,更是在濱河造成了極大的恐慌俭驮,老刑警劉巖回溺,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異混萝,居然都是意外死亡遗遵,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門逸嘀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)车要,“玉大人,你說(shuō)我怎么就攤上這事崭倘∫硭辏” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵司光,是天一觀的道長(zhǎng)琅坡。 經(jīng)常有香客問(wèn)我,道長(zhǎng)残家,這世上最難降的妖魔是什么榆俺? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上茴晋,老公的妹妹穿的比我還像新娘陪捷。我一直安慰自己,他們只是感情好诺擅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布市袖。 她就那樣靜靜地躺著,像睡著了一般掀虎。 火紅的嫁衣襯著肌膚如雪凌盯。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,741評(píng)論 1 289
  • 那天烹玉,我揣著相機(jī)與錄音驰怎,去河邊找鬼。 笑死二打,一個(gè)胖子當(dāng)著我的面吹牛县忌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播继效,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼症杏,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瑞信?” 一聲冷哼從身側(cè)響起厉颤,我...
    開(kāi)封第一講書(shū)人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎凡简,沒(méi)想到半個(gè)月后逼友,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秤涩,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年帜乞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筐眷。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡黎烈,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出匀谣,到底是詐尸還是另有隱情照棋,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布武翎,位于F島的核電站烈炭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏后频。R本人自食惡果不足惜梳庆,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一暖途、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧膏执,春花似錦驻售、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至征峦,卻和暖如春迟几,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背栏笆。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工类腮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蛉加。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓蚜枢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親针饥。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厂抽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348

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