Skip to content

Latest commit

 

History

History
24 lines (22 loc) · 1.32 KB

9.20函数写法区别+splice.md

File metadata and controls

24 lines (22 loc) · 1.32 KB

Function Declaration (函数声明)

函数声明可以定义命名的函数变量,而无需给变量赋值。是一种独立的结构,不能嵌套在非功能模块中。可以将它类比为Variable Declaration,就像变量声明必须以 var开头,函数声明必须以"function"

Function Expression (函数表达式)

将函数定义为表达式语句(通常是变量赋值)的一部分。可以是命名的,也可以是匿名的。

交换变量利用splice

splice以前对它的认识很模糊,与slice等数组方法很类似。昨天看函数式编程中说到slice是一个纯函数,而splice不是,传入相同的参数返回的结果有可能会不相同。 因为它返回的是被删除的元素组成的数组,并且原数组会被改变。这样对数据操作是不好的。 定义是:splice() 方法通过删除现有元素和/或添加新元素来更改一个数组的内容。

  1. 语法
array.splice(start)
array.splice(start, deleteCount) 
array.splice(start, deleteCount, item1, item2, ...)
  1. 利用splice来交换数组中任意两个元素
var arr = [1,2,3]
//arr[n]等于被删除索引为k的项,并插入arr[n]到索引为k的位置实现了交换
arr[n] = arr.splice(k,1,arr[n])
  1. 但是最经典并且性能最高的方法还是用一个临时变量来实现交换