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的操作数