es5介紹
js標(biāo)準(zhǔn):ECMAScript
ECMAScript3簡稱es3,我們現(xiàn)在所用的語法拌夏,大多都是ECMAScript3的語法
ECMAScript5的版本遣铝,所有瀏覽器公認(rèn)的兼容性最好的一個(gè)版本 - es5
es5比es3朋鞍,多了一些新的語法诵棵,例如:嚴(yán)格模式/數(shù)組新增了方法
嚴(yán)格模式
嚴(yán)格模式:對(duì)代碼提出了幾個(gè)要求:
1.不允許省略var定義變量
2.不允許普通函數(shù)中的this代表window
3.不允許函數(shù)的形參重名
// 嚴(yán)格模式需要手動(dòng)開啟:寫一個(gè)字符串 "use strict"
// "use strict"
// a = 1;
// console.log(a);
// function fn(){
// console.log(this);
// }
// fn();
// function fn(a,a){
// console.log(a);
// }
// fn(1,2);
// 如果嚴(yán)格模式寫在全局卿堂,就會(huì)約束全局中的所有代碼
// 嚴(yán)格模式還可以在局部開啟盅安,如果在局部開啟以后嚣潜,就只能約束局部代碼冬骚,對(duì)全局不生效了
b = 2;
console.log(b);
function fn(){
'use strict'
a = 1;
}
fn()
// 嚴(yán)格模式 - 對(duì)代碼多了一點(diǎn)約束 - 代碼更加規(guī)范了 - 瀏覽器解析起來速提高了
es5新增數(shù)組方法
-indexOf :查找元素在數(shù)組中第一次出現(xiàn)的位置 - 找到就返回下標(biāo),找不到就返回-1
var arr = [1,3,5,9,6,2,8,5,2,6,7,1];
// arr.indexOf(元素,開始下標(biāo))
var index = arr.indexOf(6,5);
console.log(index);
-forEach :遍歷數(shù)組
var arr = ['a','b','c','d'];
// arr.forEach(function(value,index,a){
arr.forEach(function(v){
console.log(v);
})
-filter :過濾數(shù)組
var arr = [8,9,16,18,21,22,29,7];
var brr = arr.filter(function(item){
return item<20;
})
console.log(brr);
-map :將原數(shù)組處理成新的數(shù)組
var arr = [1,2,3,4];
var brr = arr.map(function(v){
return v+v*10;
})
console.log(brr);
-reduce :歸并
var arr = [1,2,3,4,5];
var res = arr.reduce(function(a,b){
console.log(a,b);
return a+b;
})
console.log(res);
字符串大小比較
console.log('a'<'b');
// 字符串的比較是逐字符比較
// 大小由ASCII碼來決定
console.log('12'>'5');
// 字母比數(shù)字大懂算,小寫的比大寫的大只冻,排在后面的字母越大
console.log('我'>'你');
字符串方法
-charAt 通過指定下標(biāo)獲取到對(duì)應(yīng)的字符
var str = 'Let it go';
console.log( str.charAt(3) );
-charCodeAt 通過指定下標(biāo)獲取到對(duì)應(yīng)的字符的ASCII碼
var str = 'Let it go';
console.log( str.charCodeAt(3) );
- String.fromCharCode(ASCII碼) 通過阿斯克碼獲取到對(duì)應(yīng)的字符
console.log( String.fromCharCode(69) );
- slice 截取字符串
var str = 'Let it go';
var res = str.slice(3,5)
console.log(res);
- split 將字符串分割組成數(shù)組
var str = 'Let it go';
var arr = str.split(' ');
console.log(arr);
//var arr = str.split(' ',2)
//console.log(arr);
-indexOf 找字符或小字符串在大字符串中第一次出現(xiàn)的位置
找到返回下標(biāo),找不到返回-1
var str = 'Let it go';
console.log( str.indexOf('i') );
console.log(str.indexOf('t',3));
-lastIndexOf 找字符或小字符串在大字符串中最后一個(gè)出現(xiàn)的位置
var str = 'Let it go';
console.log( str.lastIndexOf('e') );
- toUpperCase() 將字符串所有字符轉(zhuǎn)為大寫
var str = 'Let it go';
console.log( str.toUpperCase() );
- toLowerCase() 將字符串中所有字符轉(zhuǎn)成小寫
var str = 'Let it go';
console.log(str.toLowerCase());
- trim去除字符串兩邊的空白
var str = ' abc ';
console.log(str);
console.log(str.trim());
- substr 截取字符串
// 語法:字符串.substr(開始下標(biāo),截取長度)
var str = '今天的天氣不錯(cuò)';
console.log( str.substr(3,2) );
- substring 截取字符串
var str = '今天的天氣不錯(cuò)';
console.log( str.substring(3,5) );
console.log( str.substring(5,3) );