簡介:不少概念不清或忘記,從新構建本身的知識體系。天天問本身1~多個問題。我是菜鳥 成爲大神之路!
正則表達式
var str = 'Hello world!';
複製代碼
String對象的方法➡ECMAScript 5數組
可返回某個指定的字符串值在字符串中首次出現的位置。若是要檢索的字符串值沒有出現,則該方法返回 -1。函數
console.log(str.indexOf("w") !== -1 ); // true
console.log(str.indexOf("wr") !== -1 ); // false
複製代碼
用於檢索字符串中指定的子字符串,或檢索與正則表達式相匹配的子字符串。若是沒有找到任何匹配的子串,則返回 -1。測試
console.log(str.search("w") !== -1 ); // true
console.log(str.search("wr") !== -1 ); // false
複製代碼
參數:可在字符串內檢索指定的值,或找到一個或多個正則表達式的匹配。
返回值:若是字符串匹配到了表達式,會返回一個數組,數組的第一項是進行匹配完整的字符串,以後的項是用圓括號捕獲的結果。若是沒有匹配到,返回nullui
var reg = RegExp(/w/);
var reg1 = /wr/
console.log(str.match(reg));//["w", index: 6, input: "Hello world!", groups: undefined]
console.log(str.match(reg1));//null
複製代碼
執行結果 spa
String對象的方法➡ECMAScript 6 (這三個方法都支持第二個參數,表示開始搜索的位置)prototype
返回布爾值,表示是否找到了參數字符串。code
str.startsWith('Hello') // true
str.startsWith('world', 6) // true
複製代碼
返回布爾值,表示參數字符串是否在原字符串的頭部。regexp
str.endsWith('!') // true
str.endsWith('Hello', 5) // true
複製代碼
返回布爾值,表示參數字符串是否在原字符串的尾部。cdn
str.includes('o') // true
str.includes('Hello', 6) // false
複製代碼
RegExp 對象方法
用於檢索字符串中指定的值。返回 true 或 false。
var reg = RegExp(/w/);
var reg1 = /wr/;
console.log(reg.test(str)); // true
console.log(reg1.test(str)); // false
複製代碼
用於檢索字符串中的正則表達式的匹配。返回一個數組,其中存放匹配的結果。若是未找到匹配,則返回值爲 null。
var reg = RegExp(/w/);
var reg1 = /wr/;
console.log(reg.exec(str)); // ["w", index: 6, input: "Hello world!", groups: undefined]
console.log(reg1.exec(str)); // null
複製代碼
//建立數組
var arr = ["one","two","three"];
//var arr=new Array(10);//這裏就建立了一個初始化大小爲10的數組
//arr.push("one");
//注意:當使用數組大小操做初始化大小時,數組會自動被撐大,不會像C語言那樣發生錯誤.動態增加是js數組的一個性質.
複製代碼
Es6
(推薦使用⭐⭐⭐⭐) 🔎方法用來判斷一個數組是否包含一個指定的值,根據狀況,若是包含則返回 true,不然返回false。
若是fromIndex
大於等於數組長度 ,則返回 false 。該數組不會被搜索。
console.log(arr.includes('one')); // true
console.log(arr.includes('onef')); // false
console.log(arr.includes('one', 4)); // false 若是`fromIndex` 大於等於數組長度 ,則返回 false 。該數組不會被搜索。
console.log(arr.includes('onef', 4)); // false 若是`fromIndex` 大於等於數組長度 ,則返回 false 。該數組不會被搜索。
console.log(arr.includes('one', -100)); // true
console.log(arr.includes('onef', -100)); // false
複製代碼
返回在數組中能夠找到一個給定元素的第一個索引,若是不存在,則返回-1。
fromIndex
開始查找的位置。若是該索引值大於或等於數組長度,意味着不會在數組裏查找,返回-1。若是參數中提供的索引值是一個負值,則將其做爲數組末尾的一個抵消,即-1表示從最後一個元素開始查找,-2表示從倒數第二個元素開始查找,若是在設置範圍內找到則返回0,不然返回-1。
console.log(arr.indexOf('one')); // 0
console.log(arr.indexOf('onef')); // -1
console.log(arr.indexOf('one', 4));// -1
console.log(arr.indexOf('onef', 4));// -1
console.log(arr.indexOf('one', -3)); // 0
console.log(arr.indexOf('one', -10)); // 0
console.log(arr.indexOf('one', -2)); // -1
複製代碼
返回指定元素(也即有效的 JavaScript 值或變量)在數組中的最後一個的索引,若是不存在則返回 -1。從數組的後面向前查找,從 fromIndex 處開始。同②
返回數組中知足提供的測試函數的第一個元素的值
。不然返回 undefined。
var arr = [5, 12, 8, 130, 44];
var found = arr.find(function(element) {
return element > 10;
});
var found1 = arr.find(function(element) {
return element > 200;
});
console.log(found); //12
console.log(found1); //undefined
複製代碼
建立一個新數組, 其包含經過所提供函數實現的測試的全部元素。
var arr = [12, 5, 8, 130, 44];
function isBigEnough(element) {
return element >= 10;
}
var filterArr = arr.filter(isBigEnough);
console.log(filterArr);//[12, 130, 44]
複製代碼
能夠根據2問中的函數編寫方法過濾。 其中有一個Array.prototype.filter(function)
方法 建立一個新數組, 其包含經過所提供函數實現的測試的全部元素。
相關知識:map() 🌳includes()🌳filter()
//場景
var values = ['1','2','4'];
var data = [{value:'1',text:'清香1'},
{value:'2',text:'清香2'},
{value:'3',text:'清香3'},
{value:'4',text:'清香4'},
{value:'5',text:'清香5'},
{value:'6',text:'清香6'}];
我須要獲得 與values對應的text值的數組
例如:var texts = ['清香1','清香2','清香4'];
複製代碼
方法一:
var valueArr = []
data.map(e=>{
if(values.includes(e.value))valueArr.push(e.text)
})
console.log(valueArr)
複製代碼
方法二:(推薦使用⭐⭐⭐⭐)
//用filter過濾,再用map。 includes 是ES7的,能夠用indexOf替代。
//使用Array.prototype.filter(function) 方法:
var result = data.filter(e=>{
return values.includes(e.value)
}).map(el => el.text);
console.log(result); // ["清香1", "清香2", "清香4"]
複製代碼
①== 兩邊值類型不一樣的時候,要先進行類型轉換,再比較。
②=== 不作類型轉換,類型不一樣的必定不等。
console.log(undefined == null);//true
console.log(undefined === null);//false
console.log(0 == false);//true
console.log(0 === false);//false
console.log(10 == "10");//true
console.log(10 === "10");//false
複製代碼