除了正常運行模式,ECMAscript5添加了第二種運行模式:"嚴格模式"(strict mode)。
顧名思義,這種模式使得Javascript在更嚴格的條件下運行。
設立"嚴格模式"的目的,主要有如下幾個:
消除Javascript語法的一些不合理、不嚴謹之處,減小一些怪異行爲;
消除代碼運行的一些不安全之處,保證代碼運行的安全;
提升編譯器效率,增長運行速度;
爲將來新版本的Javascript作好鋪墊。
進入"嚴格模式"的標誌:"use strict";
將 "use strict"; 放在腳本文件的第一行,則整個腳本都將以"嚴格模式"運行。
<script>
"use strict";
console.log("這是嚴格模式。");
</script>
將"use strict"放在函數體的第一行,則整個函數以"嚴格模式"運行。
function strict(){
"use strict";
return "這是嚴格模式。";
}
嚴格模式對JS的語法和行爲有一些限制:
給未聲明的變量賦值直接報錯,而不是變成全局變量;
禁止this關鍵字指向全局對象;
對象不能有重名的屬性(IE);
函數不能有重名的參數;
......
ES5支持狀況:ie9+, chrome 19+, safari 5+, firefox 4+, opera 12+
indexOf() 方法返回數組中第一個找到的元素位置,若是它不存在則返回-1
forEach() 方法爲每一個元素執行對應的方法
filter() 方法返回一個新的數組,新數組中的元素是經過檢查指定數組中符合條件的全部元素
map() 方法對數組的每一個元素進行必定操做後,返回一個新的數組
reduce() 方法接收一個函數做爲累加器,數組中的每一個值(從左到右)開始縮減,最終計算爲一個值
array.reduce(function(total, item, index, array), initialValue)
total:初始值, 或者計算結束後的返回值
initialValue:初始值
JavaScript的字符串就是用''或""括起來的字符。
字符串之間使用 + 號進行拼接。
建立字符串:
var str1 = 'abc';
var str2 = new String('abc');
length-屬性返回字符串的長度(字符的個數)
str1.length; // 3
能夠經過索引訪問字符串中的某個字符:str1[0]、str1[1]
字符串常見API
API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數
toLowerCase() 方法將整個字符串轉成小寫字母
toUpperCase() 方法將整個字符串轉成大寫字母
indexOf() 方法返回字符串中子串第一處出現的索引值,沒有匹配返回-1
lastIndexOf() 方法返回字符串中子串最後出現的索引值,沒有匹配返回-1
slice() 方法從已有字符串中提取部分字符,返回新的字符串
var str = str1.slice(start,end);
slice()返回的子串包括start處的字符,但不包括end處字符
split() 方法把一個字符串分割成字符串數組,返回新數組
var str = str1.split('分割符',length);
第一個參數指定分割的符號,第二個參數可選,爲返回數組的長度
substr() 方法返回一個從指定位置開始的指定長度的子串
var str = str1.substr(start,length);
參數start必須,字符的起始位置,length參數可選,截取字符串的長度
substring() 方法返回字符串中介於兩個指定下標之間的子串
var str = str1.substring(start,end);
包含start處的字符,不包含end處的字符
concat() 方法將兩個或多個字符串組合起來,返回一個新的字符串
charAt() 方法返回指定索引位置的字符
replace() 方法用於在字符串中用一些字符替換另外一些字符,返回替換後的字符串
var newStr = str.replace('abc','替換abc');
charCodeAt() 方法返回指定索引處字符的unicode編碼值
String.fromCharCode(num1,num2,num3......) 方法根據指定的Unicode編碼值來返回字符串
var str = String.fromCharCode(65,66,67);// 'ABC'
編碼字符集:(簡稱字符集,如Unicode、ASCII)
編碼字符集,用一個編碼值來表示一個字符在庫表中的位置,這個值稱爲字符對應於編碼字符集的序號。
最先只有127個字母被編碼到計算機裏,也就是大小寫英文字母、數字和一些符號,這個編碼表被稱爲ASCII編碼。
ASCII編碼主要針對的是英語,全世界有上百種語言,中國製定了GB2312編碼,日本製定了Shift_JIS編碼,韓國製定了Euc-kr編碼...
各國有各國的標準,就會不可避免地出現衝突,結果就是,在多語言混合的文本中,顯示出來會有亂碼。
Unicode編碼把全部語言都統一到一套編碼裏,這樣就不會再有亂碼問題了!
Unicode 編碼是一個很大的集合,如今的規模能夠容納100多萬個符號。
Unicode 編碼開頭的 128 個和 ASCII 編碼同樣。
編碼字符集Unicode,有UTF-八、UTF-1六、UTF-32等多種字符編碼。