1、indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,如果不存在匹配字符则返回 -1;
if (Array.prototype.indexOf){ //判断当前浏览器是否支持 }
2、splice(index,len,[item])该方法会改变原始数组
splice有三个参数,它可以用来替换/删除/添加/数组内的某一个或几个值
index->数组开始下标 len-> 替换/删除的长度 item -> 替换的值,删除操作的话 item 设置为空
eg:arr = ['a','b','c','d']
1)删除 --- item 不设置
arr.splice(1,1) //['a','c','d'] 删除起始下标为1,长度为1 范围内的值。如果 len设置为0,则数组不会发生改变
arr.splice(1,2) // ['a','d'] 删除起始下标为1 长度为2 范围内的值,len设置为2.
2)替换 --- item的值即为替换的值
arr.splice(1,1,'ddd') //['a','ddd','c','d'] 替换起始下标为1,长度为1的内容为 ‘ddd’ len的设置为1 item为‘ddd’ index为1
arr.splice(1,2,‘ddd’) //['a','ddd','d'] 替换起始下标为1,长度为2的两个值为‘ddd’ ,len设置为2,index设置为1,item为ddd
3)添加 ---len设置为0,item为添加的值
arr.splice(1,0,'ttt') //['a','ttt','b','c','d'] 表示在下标为1处添加一项 ‘ttt’
splice会自动改变数组长度的值
split
split() 方法用于把一个字符串分割成字符串数组。
语法:stringObject.split(separator,howmany)
separator :必需 字符串或正则表达式 从该参数指定的地方分隔stringObject
howmany:可选。该参数可指定返回数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组,如果没有设置该参数,整个字符串都会被分割,不考虑它的长度
3.slice() 方法可从已有的数组中返回选定的元素 语法 arrayObject.slice(start,end)
start 必需,规定从何处开始选取 如果是负数,那么它规定从数组尾部开始算起的位置,也就是说,-1指最后一个元素,-2指倒数第二个元素......
end 可选 规定从何处结束选取,该参数是数组片段结束处的数组下标。如果没有指定该参数,那么切分的数组包含从start到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素
返回值:为一个新数组,包含从start到end(不包含该元素)的arrayObject中的元素
该方法并不会改变数组,而是返回一个子数组。如果删除数组中的一段元素,应该使用方法array.splice().
可以使用负值从数组的尾部选取元素 如果end未被规定,那么slice()方法会选取从start到数组结尾的所有元素
4.eval()
eval()函数可计算某个字符串,并执行其中的js代码 eval(string)
string 必需。要计算的字符串,其中含有要计算的js表达式或要执行的语句
返回值为 通过计算string得到的值(如果有值的话)
该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。
5.join() 用于把数组中的所有元素放入一个字符串 元素是通过指定的分隔符进行分隔的
arrayObject.join(separator)
aeparator 可选 指定要使用的分隔符,如果省略该参数,则使用逗号作为分隔符
返回一个字符串,该字符串是通过把arrayObject的每个元素转换为字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串生成的
6、向数组添加元素
1)splice() splice添加元素的方法序号1处已有,此处不再赘述
2)push() arr.push(''),直接加在最后
3)concat() 使用concat将传入的数组或非数组值与原数组合并,组成一个新的数组并返回
7、pop() 删除并返回数组的最后一个元素
arr.pop()
8. filter()
filter()方法将匹配元素集合缩减为匹配指定选择器的元素
如果给定表示 DOM 元素集合的 jQuery 对象,.filter() 方法会用匹配元素的子集构造一个新的 jQuery 对象。所使用的选择器会测试 每个元素;所有匹配该选择器的元素都会包含在结果中。
:even 选择器 选取每个带有偶数index值的元素(比如 2 4 6)
index值从0开始,所有第一个元素是偶数(0)
最常见的用法:与其他元素/选择器一起使用,来选择指定的组中偶数序号的元素
语法:$(":even")
:odd 选取每个带有奇数index值的元素
filter常用情况
1)创建一个数组,判断数组中是否存在某个值
var newarr = [
{ num: 1, val: 'ceshi', flag: 'aa' },
{ num: 2, val: 'ceshi2', flag: 'aa2' }
]
console.log(newarr.filter(item => item.num===2 )) //控制台打印 第二条数据所有信息
2) 去掉空数组空字符串、undefined、null
var arr = ['1','2',undefined, '3.jpg',undefined]
var newArr = arr.filter(item => item)
console.log(newArr)
var arr = ['1','2',null, '3.jpg',null]
var newArr = arr.filter(item => item)
console.log(newArr)
>//空字符串里面不能包含空格
var arr = ['1','2','', '3.jpg','']
var newArr = arr.filter(item => item)
console.log(newArr)
3)去掉数组中不符合项
var arr = [20,30,50, 96,50]
var newArr = arr.filter(item => item>40)
console.log(newArr)
4)过滤不符合项
var arr = ['10','12','23','44','42']
var newArr = arr.filter(item => item.indexOf('2')<0)
console.log(newArr)
5)数据去重
var arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7,8,8,0,8,6,3,4,56,2];
var arr2 = arr.filter((x, index,self)=>self.indexOf(x)===index)
console.log(arr2); //[1, 2, 3, 4, 5, 6, 7, 8, 0, 56]
9、sort()
sort()方法用于对数组中的元素进行排序
10、
11、 在Javascript语言中,声明变量使用的都是关键字var,如果不使用var而直接声明变量,则该变量为全局变量
12、 parseInt() 函数可解析一个字符串,并返回一个整数。
13、 按10进制去处理字符串,碰到非数字字符,会将后面的全部无视
function parse2Int(num) {
return parseInt(num,10);
}
14、== and ===
一般使用双等来判断(==),如果还需要类型相同那么就用三等(===)。 说一下这两个的区别: == equality 等同,=== identity 恒等。 ==, 两边值类型不同的时候,要先进行类型转换,再比较。 ==,不做类型转换,类型不同的一定不等。 下面分别说明: 先说 ===,这个比较简单。下面的规则用来判断两个值是否===相等: 1、如果类型不同,就[不相等] 2、如果两个都是数值,并且是同一个值,那么[相等]。 3、如果两个都是字符串,每个位置的字符都一样,那么[相等];否则[不相等]。 4、如果两个值都是true,或者都是false,那么[相等]。 5、如果两个值都引用同一个对象或函数,那么[相等];否则[不相等]。 6、如果两个值都是null,或者都是undefined,那么[相等]。 再说 ==,根据以下规则: 1、如果两个值类型相同,进行 === 比较。 2、如果两个值类型不同,他们可能相等。根据下面规则进行类型转换再比较: a、如果一个是null、一个是undefined,那么[相等]。 b、如果一个是字符串,一个是数值,把字符串转换成数值再进行比较。 c、如果任一值是 true,把它转换成 1 再比较;如果任一值是 false,把它转换成 0 再比较。 d、任何其他组合,都[不相等]。
15、clearInterval()
clearInterval() 方法可取消由 setInterval() 设置的 timeout。
clearInterval() 方法的参数必须是由 setInterval() 返回的 ID 值。
16、apply()
apply:调用一个对象的一个方法,用另一个对象替换当前对象。eg:B.apply(A,arguments);即A对象应用B对象的方法
call:调用一个对象的一个方法,用另一个对象替换当前对象。eg:B.call(A,args1,args2);即A对象调用B对象的方法
共同之处:
都“可以用来代替另一个对象调用一个方法,讲一个函数的对象上下文从初始的上下文改变为由thisObj指定的新对象”
不同之处:
apply:最多只能有两个参数--新this对象和一个数组argArray。如果给该方法传递多个参数,则把参数都写进这个数组里面,当然,即使只有一个参数,也要写进数组里面,如果argArray不是一个有效的数组或arguments对象,那么将导致一个typeError。如果没有提供argArray和thisObj任何一个参数,那么Global对象将被用作thisObj,并且无法被传递任何参数
call:他可以接受多个参数,第一个参数和apply一样,后面则是一串参数列表。这个方法主要用在js对象各方法相互调用的时候,使当前this实例指针保持一致,或者在特殊情况下需要改变this指针,如果没有提供thisObj参数,那么Global对象被用作thisObj·
实际上,apply和call的功能是一样的,只是传入的参数列表形式不同。
17、模糊查询
input中list 的值一定要与dataList中id的值一致!!!
<input type="text" list="itemlist">
<datalist id="itemlist">
<option v-for="item in arr" v-bind:value="item.name">
{{item.name}}
</option>
</datalist>
18、arr.charAt(0) // 第一个字符 arr.charAt(arr.length-1) //最后一个字符
arr.substring(1,4) //第2~4个字符 arr.slice(1.4) //第2~4个字符
arr.slice(-3) //最后三个字符
s.indexOf("1")//字符1首次出现的位置 s.lastIndexOf('1') //字符1最后一次出现的位置
s.iindexOf("1",3) //字符1在位置3之后首次出现的位置
s.split(",") //eg. ["a","b"]分割为子串 s.replace("h","H") // h->H "Hello,world" 全文字符替换
s.toUpperCase //转化为大写
19、FireFox 基于 Mozilla