JS方法

js数组方法中操作会 改变/不改变 原数组

  • 改变原数组的API有:
var arr = []
arr.splice()
arr.reverse()
arr.fill()
arr.copyWithin()
arr.sort()
arr.push()
arr.pop()
arr.unshift()
arr.shift()

  • 不改变原数组的API有:
var arr = []
arr.slice()
arr.map()
arr.forEach()
arr.every()
arr.some()
arr.filter()
arr.reduce()
arr.entries()
arr.find()
arr.concat('1',['2','3']) //[1,2,3]

apply方法与call方法

调用函数可以使用call或者apply这两个方法,区别在于call需要将传递给函数的参数明确写出来,是多少参数就需要写多少参数。而apply则将传递给函数的参数放入一个数组中,传入参数数组即可。

apply方法能劫持另外一个对象的方法,继承另外一个对象的属性.

Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args–>arguments)

而call方法和apply的意思一样,只不过是参数列表不一样.

Function.call(obj,[param1[,param2[,…[,paramN]]]])
obj:这个对象将代替Function类里this对象
params:这个是一个参数列表

在JS中,this的指向是动态变化的,很可能在写程序的过程中,无意中破坏掉this的指向,所以我们需要一种可以把this的含义固定的技术,于是就有了call,apply和bind这三个方法

apply:应用某一对象的一个方法,用另一个对象替换当前对象。
call:调用一个对象的一个方法,以另一个对象替换当前对象。

△它们的共同之处:
都可以用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。

△它们的不同之处:
①apply:最多只能有两个参数——新this对象和一个数组 argArray。如果给该方法传递多个参数,则把参数都写进这个数组里面,当然,即使只有一个参数,也要写进数组里面。如果 argArray 不是一个有效的数组或者不是 arguments 对象,那么将导致一个 TypeError。如果没有提供 argArray 和 thisObj 任何一个参数,那么 Global 对象将被用作 thisObj,并且无法被传递任何参数。

call跟apply的区别不大,主要是后面的传入参数,call的直接可以传入this的对象后,继续传参数,apply的话传入this的对象后,需要传一个数组。
还有call跟apply作用主要是改变this的作用域,也可以理解为冒充this对象,主要应用于对象继承上面

字符串中的空格替换

  • 只替换第一个空格

var a = "hello  word word  word  word";
 
var b = a.replace(" ", "哈");
 
console.log(b);  // hello哈 word word  word  word
  • 替换连续所有空格

var a = "hello  word word  word  word";
 
var b = a.replace(/\s+/g, "哈");//使用正则表达式
 
console.log(b);  // hello哈word哈word哈word哈word
  • 替换所有包括连续的空格。
var a = "hello  word word  word  word";
 
var b = a.replace(new RegExp(" ", "gm"), "哈");
 
console.log(b);  //  hello哈哈word哈word哈哈word哈哈word

js判断空格并去除空格:
https://blog.csdn.net/zwx_lucky/article/details/50716616

四种touch事件

  • touchstart: //手指放到屏幕上时触发
  • touchmove: //手指在屏幕上滑动式触发
  • touchend: //手指离开屏幕时触发
  • touchcancel: //系统取消touch事件的时候触发,这个好像比较少用

每个触摸事件被触发后,会生成一个event对象,event对象里额外包括以下三个触摸列表:

  • touches: //当前屏幕上所有手指的列表
  • targetTouches: //当前dom元素上手指的列表,尽量使用这个代替touches
  • changedTouches: //涉及当前事件的手指的列表,尽量使用这个代替touches
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值