js试题 tips

 

 

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

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值