JavaScript之ES5和String

目錄數組

ES5String2瀏覽器

1:ES5簡介2安全

2:嚴格模式簡介2函數

3:進入嚴格模式3this

4:如何調用嚴格模式3編碼

5:嚴格模式改變語法和行爲3spa

6ES5新增數組方法4code

7字符串7orm

8聲明字符串7對象

9:字符串屬性7

12:字符串方法7

應用:9

ASCII碼和字符集9

字符串常見API(charCodeAt\fromCharCode\)11

應用12

綜合應用:12

 

ES5String

1:ES5簡介

ECMAScript 5.1 (或僅 ES5) 是ECMAScript(基於JavaScript的規範)標準修正。 HTML5規範進程本質相似,ES5經過對現有JavaScript方法添加語句和原生ECMAScript對象作合併實現標準化。

2:嚴格模式簡介

除了正常運行模式,ECMAscript 5添加了第二種運行模式:"嚴格模式"(strict mode)。顧名思義,這種模式使得Javascript在更嚴格的條件下運行。

設立"嚴格模式"的目的,主要有如下幾個:

1:消除Javascript語法的一些不合理、不嚴謹之處,減小一些怪異行爲。

2:消除代碼運行的一些不安全之處,保證代碼運行的安全:。

3:提升編譯器效率,增長運行速度。

4:爲將來新版本的Javascript作好鋪墊。

"嚴格模式"體現了Javascript更合理、更安全、更嚴謹的發展方向,包括IE 10在內的主流瀏覽器,都已經支持它,許多大項目已經開始全面擁抱它。

3:進入嚴格模式

進入「嚴格模式」的標誌,書寫這行語句:"use strict";

老版本的瀏覽器會把它看成一行普通字符串,加以忽略。

4:如何調用嚴格模式

"嚴格模式"有兩種調用方法,適用於不一樣的場合。

針對整個腳本文件:將"use strict"放在腳本文件的第一行,則整個腳本都將以"嚴格模式"運行。若是這行語句不在第一行,則無效,整個腳本以"正常模式"運行。若是不一樣模式的代碼文件合併成一個文件,這一點須要特別注意。

針對單個函數:將"use strict"放在函數的第一行,則整個函數以"嚴格模式"運行。

腳本文件的變通寫法:由於第一種調用方法不利於文件合併,因此更好的作法是,借用第二種方法,將整個腳本文件放在一個當即執行的匿名函數之中。

5:嚴格模式改變語法和行爲

嚴格模式對Javascript的語法和行爲,都作了一些改變。

1:全局變量顯式聲明。

在正常模式中,若是一個變量沒有聲明就賦值,默認是全局變量。嚴格模式禁止這種用法,全局變量必須顯式聲明。所以,嚴格模式下,變量都必須先用var命令聲明,而後再使用。

2:函數形參不容許重複。

3:禁止使用with語句。

4:禁止函數內部this關鍵字指向全局對象,this指向undefined。

5:函數必須聲明在頂層。

未來Javascript的新版本會引入「塊級做用域"。爲了與新版本接軌,嚴格模式只容許在全局做用域或函數做用域的頂層聲明函數。也就是說,不容許在非函數的代碼塊內聲明函數。

// if(1){function a(){}} else {function a() {}}

 

6ES5新增數組方法   

ES5新增數組常見方法(indexof/forEach/map/reduce/filter

 

1:forEach方法:遍歷數組。第二個參數爲可選的上下文參數(改變this指向)。

 

forEach方法中的function回調支持3個參數,第1個是遍歷的數組內容;第2個是對應的數組索引,第3個是數組自己。forEach不會遍歷空位置的內容。如:[1, , 3],只會遍歷1和3。

2:map方法:將數組映射成新數組。回調函數須要有返回值。

 

3:filter方法:指數組過濾後,返回過濾後的新數組。 filter的callback函數須要返回布爾值true經過過濾false。

 

4indexOf方法:返回整數索引值,若是沒有匹配(嚴格匹配),返回-1。 fromIndex可選,表示從這個位置開始搜索,若缺省或格式不合要求,使用默認值0。

 

5reduce方法:歸併。遞歸減小。

callback函數接受4個參數:以前值、當前值、索引值以及數組自己。initialValue參數可選,表示初始值。若指定,則看成最初使用的previous值;若是缺省,則使用數組的第一個元素做爲previous初始值,同時current日後排一位,相比有initialValue值少一次迭代。

 

案例

 

解析

 

說明:

1:由於initialValue不存在,所以一開始的previous值等於數組的第一個元素。

2:從而current值在第一次調用的時候就是2。

3:最後兩個參數爲索引值index以及數組自己array。

 

 

7字符串

JS中的任何數據類型均可以看成對象來看。因此string既是基本數據類型,又是對象。

8聲明字符串

var sStr = ‘字符串’;

var oStr = new String(‘字符串’);

9:字符串屬性

length

      計算字符串的長度(不區分中英文)。

10:字符串方法

字符串常見API  (charAt\ indexOf\substring\slice\split\replace)

 

myStr.charAt(num)  等價  myStr[num]

返回在指定位置的字符。  

.myStr.indexOf()

返回某個指定的字符串,在字符串中首次出現的位置。若是要檢索的字符串值沒有出現,則該方法返回 -1。

myStr.search()

返回出現的位置,查找不到返回-1。配合正則來用。

 

myStr.replace(「需替換的字符串」,「替換後的字符串」)

將字符串中的一些字符替換爲另一些字符。配合正則使用

 

myStr.slice(start,end)

從指定的開始位置,到結束位置(不包括結束位置)的全部字符串。若是不指定結束位置,則從指定的開始位置,取到結尾。注意的是,myStr.slice() 與 myArr.slice() 類似。

 

myStr.substring(start,end)

從指定的開始位置,到結束位置(不包括)的全部字符串。若是不指定結束位置,則從指定的開始位置,取到結尾。

 

split("分割位置",[指定返回數組的長度])  使用分隔符分隔字符串

將一個字符串分割成數組

 

toLowerCase()

用於把字符串轉換爲小寫。

toUpperCase()

將字符串轉換爲大寫。

 

應用:

1.敏感詞過濾。

//現有敏感詞   ‘你妹,fuck,你大爺」 ,要求過字符串中的這些詞爲*** tmp  res

2.密碼格式要求。

//判斷用戶的輸入是不是純數字

3.留言過濾。 以下

 

ASCII碼和字符集

ASCII:American Standard Code for Information Interchange,美國信息交換標準代碼。

 

Unicode編碼

Unicode(統一碼、萬國碼、單一碼)是計算機科學領域裏的一項業界標準,包括字符集、編碼方案等。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,以知足跨語言、跨平臺進行文本轉換、處理的要求。 Unicode目前廣泛採用的是UCS-2,它用兩個字節來編碼一個字符。

如漢字"經"的編碼是0x7ECF,注意字符碼通常用十六進制來 表示,爲了與十進制區分,十六進制以0x開頭,0x7ECF轉換成十進制 就是32463,UCS-2用兩個字節來編碼字符,兩個字節就是16位二進制, 2的16次方等於65536,因此UCS-2最多能編碼65536個字符。

GBK編碼

GBK全稱《漢字內碼擴展規範》(GBK即「國標」、「擴展」漢語拼音的第一個字母,英文名稱:Chinese Internal Code Specification)。GBK 向下與GB2312編碼兼容,向上支持 ISO 10646.1國際標準,是前者向後者過渡過程當中的一個承上啓下的產物。

UTF-8編碼

UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字符編碼,又稱萬國碼。 UTF-8用1到4個字節Byte編碼UNICODE字符。用在網頁上能夠同一頁面顯示中文簡體繁體及其它語言(如英文,日文,韓文)。

字符串常見API(charCodeAt\fromCharCode\)

1.myStr.charCodeAt(num)

返回指定位置的字符的Unicode(是字符編碼的一種模式)編碼。

2.String.fromCharCode()

String的意思就是不能用本身定義的字符串名字來調用,例如定義一個變量字符串 var str="";只能用String來定義調用。接受一個或多個指定的Unicode值,而後返回一個或多個字符串。(把unicode編碼轉換爲字符串)。

 

應用

1:統計字符串中每一個字符的個數。

綜合應用:

1數字字母混合驗證碼4

 

2(aabccd)統計每一個字符出現的次數,結果顯示 a 二、b 一、c 2d1,去掉重複的字符,使結果顯示 abcd  分治

 Abcd

aabccd

相關文章
相關標籤/搜索