var new_arrary = arr.filter(callback[, thisArg])? ? ? ? >filter() 方法使用指定的函數測試所有元素,并創建一個包含所有通過測試的元素的新數組。? callback 被調用時傳入三個參數:1.元素的值;2.元素的索引;3.被遍歷的數組; .map()>不改變原來的數組;? arr.find(callback[, thisArg])> 如果數組中某個元素滿足測試條件,find() 方法就會返回滿足條件的第一個元素,如果沒有滿足條件的元素,則返回 undefined。? 區別:findIndex()方法返回的是滿足條件的元素的索引,而非它的值。arr.findIndex(callback[, thisArg])> 用來查找數組中某指定元素的索引, 如果找不到指定的元素, 則返回 -1.arr.some(callback[, thisArg])> some() 方法測試數組中的某些元素是否通過了指定函數的測試。arr.every(callback[, thisArg])> every() 方法測試數組的所有元素是否都通過了指定函數的測試。Array.reduce( callback, [initialValue] )? > 功能:連續做某事,如加減、連接等。
需要用到的值需要在callback中聲明,有 accumulator上一次調用返回的值,currentValue現在要處理的值, currentIndex數組中要處理元素的索引, array調用.reduce()的數組.replace( 正則式/字符串 , 替換的內容 );.sort( [比較函數] )> 默認從小到大排序;數組;改變原數組;
我對比較函數的理解:function(a,b){return a-b;} 為了保證返回值總是負數,需要a前后反轉 ;數組;改變原數組;.concat(item1,[item2], ‥‥)? > 連接2個或多個;字符串/數組;可以使單獨某一項 如array[1].push(arr1,[arr2], ‥‥)> 數組新增1個或多個,返回數組長度;數組; 改變原數組;.substr( start, [ length ] )? > 截取,可用負值;字符串;.substring( start, [end] )> 截取,不可用負值;字符串;.slice( start, [end] )? > 截取,可用負值 ;字符串/數組 ; 無內容時,復制數組;? .join( )> 把 ‘數組’ →→→→ ‘字符串’;1. 無內容,用 , 連接起來 ;
2. 有內容,例如 ''? ' '? '-' 等;string.split( [separator], [limit] );? > 按指定內容分割成數組;字符串array.splice( index, 刪除數量, [item1],[item2], ...);? > 向數組中替換條目,返回刪除內容;數組 ;改變原數組;.indexOf( searchValue, [begin] );? > 在指定的開始位置搜索指定的值,返回index/-1; 數組/字符串 ;.lastIndexOf( searchValue, [begin] );? > 在指定的開始位置搜索指定的值,返回index/-1,僅是檢索順序從后往前; 數組/字符串 ;.includes( searchValue, [begin] );> 返回true/false;.search( searchValue );? > 搜索指定值(正則式/字符串),返回index/-1 ; 字符串 ;Array.isArray( )? > 用來判斷某個值是否為Array。如果是,則返回 true,否則返回 false。***#### 進制轉換xxx.toString(進制數)? > 轉為2進制( 是字符串,可用Number()轉一下 );parseInt( '101110100', 2 )? > 把2進制數 轉為 10進制;***.match();? > 1. 字符串/未全局匹配的表達式
無匹配:返回null
有匹配:返回[匹配值,index:索引值,input:原字符串]
2. 全局匹配的正則式
無匹配:返回null
有匹配:返回匹配值組成的數組;.toLowerCase() .toUpperCase()? > 全部轉換成大/小寫string.match(正則表達式)? >返回符合此表達式的數組or字符串;***轉義字符\0? 空字符 ; \'? 單引號 ; \" 雙引號 ; \\ 反斜杠 ; \n? 換行? ;? \r? 回車? ;? \v? 垂直制表符 ;? \t? 水平制表符 ;? \b? 退格符? ;? \f? 換頁 ;? string.charAt(index);? > 獲取單個字符 ;字符串 ;string[index];? 獲取單個字符 ;字符串 ;string.charCodeAt( index )> 在字符串中找到index位置的字母的編碼String.fromCharCode(編碼1,編碼2, ‥‥)> 把編碼1,編碼2 ... 等轉換后連接起來組成字符串;JSON.stringify(對象);? > 把對象變成json字符串;
JSON.parse(json字符串);? 把json字符串變成對象;list.removeChild(list.childNodes[1]);? > 移除第一項;Number(xxx);? > 把xxx轉化為數字;? String(xxx);? 把xxx字符串化;***正則表達式:? > 1. ?? 0次或一次;
2. +? 一次或多次;
3. *? 任意次;
4. {n}? n次;
5. {n,m}? n到m次;
6. {n, }? 至少n次;
7. ()? 分組;
8. xxx|xxx? 或;
9. $1 $2...? 捕獲變量,必須配合分組使用;exp1(?= exp2);? > 選中匹配exp1并且匹配exp2的內容? exp1(?!exp2);? > 選中匹配exp1不匹配exp2的內容正則式.test(string);? > 檢測字符串中是否有滿足此正則式的內容,返回true或false;創建正則表達式的方式:> 1. var reg = new RegExp('hi','g');2. var reg = /hi/g;修飾符> 1. g:全文搜索;? 2. i:忽略大小寫;? 3. m:多行搜索;正則式.test(字符串);? > 檢測此字符串中是否有符合此正則式的內容,返回true/false;正則式.exec(字符串);? > 檢測此字符串中是否有符合此正則式的內容,返回'搜索到的字符串' / null ;字符類> 1. []符合中括號中字符的任意一個就行,如 str.match(/[a-e]/g);取反> 1. [^xxx]? 不符合xxx類的內容;預定義類> . 除了“回車”“換行”之外的所有字符;
\d? 0-9 之間的數字字符;
\D? 非數字字符;
\s? 空白符;
\S? 非空白符;
\w? 數字、字母、下劃線;
\W? 非 數字、字母、下劃線;
邊界> ^? 以xxx開頭;
$? 以xxx結尾;
\b? 單詞邊界;
\B? 非單詞邊界;
貪婪模式 and 非貪婪模式> 默認是貪婪模式;在量詞后面直接加上一個問號?就是非貪婪模式。如 reg =/!.+?!/g#### Jquery中的JSON方法? ? $.getJSON('/json/cats.json',function(json){? ? ? ? ? ? $('.message').html(JSON.stringify(json));? ? ? ? ? });#### 對json數據進行過濾? ? json = json.filter(function(val) {? ? ? return (val.id !== 1);? ? });#### 獲取地理位置? ? if (navigator.geolocation) {? ? ? navigator.geolocation.getCurrentPosition(function(position) {? ? ? ? $("#data").html("latitude: " + position.coords.latitude + "
longitude: " + position.coords.longitude);? ? ? });? ? }***#### 數學函數Math.ceil();? > 向上取整Math.floor();? > 向下取整Math.round();? > 四舍五入取整Math.max(value1,[value2],‥‥)? > 取此組值中最大的值Math.min(value1,[value2],‥‥)? > 取此組值中最小的值***break 用于跳出循環(對if語句無作用)可以配合? [name]:function(){xxxxxxxxxx; break [name]; } ,使多層跳出多層循環;***`'`? > 單引號console.log(' %s + %s = %s', 1, 1, 2)? //? 1 + 1 = 2console.log(' %s + %s = %s', 1, 1, 2)? //? 1 + 1 = 2? > %s 字符串%d 整數%i 整數%f 浮點數%o 對象的鏈接%c CSS格式字符串typeof (xxx)? ? > 判斷類型; ( )不必須;? 返回值有undefined boolean string number object function;進制數? > 8進制? 0 + xxx? 16進制? 0x + xxx最大最小數> Number.MAX_VALUE 和 Number.MIN_VALUE 分別表示最大和最小數;e.key> 按鍵值(e 是按鍵對象)window.scrollY;> DOM在在Y軸方向上的滾動距離;window.scroll(0,0);> 設置頁面 滑動的位置 ;window.scrollByPages( -1 );> 翻到上一頁;window.innerHeight / window.innerWidth> 窗口高度 / 寬度...xxx? spread運算符 or rest運算符> spread運算符用三個點號表示,功能是把數組或類數組對象 >>> 一系列用逗號隔開的值? 可用于數組拷貝 :[...arr]? 把一個數組插入另一個數組里面 : [...arr,4,5,6]? 字符串 轉為 數組 : [...str]? > rest運算符用三個點號表示,功能是把一系列用逗號隔開的值 >>> 數組 (此時只能有1個參數)? 可用于數組拷貝 :[...arr]? 把一個數組插入另一個數組里面 : [...arr,4,5,6]? 字符串 轉為 數組 : [...str]Array.from(arrayLike[, mapFn[, thisArg]])> 從類似數組或可迭代對象創建一個新的數組實例。Object.assign(target, ...sources)> 把任意多個的源對象自身的可枚舉屬性拷貝給target,然后返回目標對象。event.preventDefault();> 取消事件的默認動作.但并不取消事件的冒泡行為.event.stopPropagation();> 阻止當前事件在捕獲及冒泡階段的進一步傳播。Object.reset();> 重置對象,如 清空表單內容;作用于form(不作用于input);isNaN();> 判斷是否是NaN類型;number.toFixed( n );> 把number保留n位小數;Number.isInteger( a );> 判斷a是否是整數;邏輯或返回第一個是 true 的操作數 或者 最后一個是 false的操作數? 邏輯與返回第一個是 false 的操作數 或者 最后一個是 true的操作數