【JavaScript】JavaScript基础三

数组

数组的声明和初始化

字面量声明数组

1
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]

使用 new Array 构造函数声明数组

1
let arr = new Array(1, 2, 3, 4, 5, 6, 7, 8, 9)

数组操作

查询

通过下标/索引的方式访问数组元素

JavasScript 数组索引越界不会报错只会返回undefined

1
2
3
4
let arr = new Array(1, 2, 3, 4, 5, 6)
for (let i = 0; i < arr.length; i++) {
  console.log(arr[i])
}

数组求和

1
2
3
4
5
6
let sum = 0
let arr = new Array(1, 2, 3, 4, 5)
for (let i = 0; i < arr.length; i++) {
  sum += arr[i]
}
console.log(sum)

修改

数组[索引] = 新值

新增

arr.push()将一个或者多个元素添加到元素末尾,并且返回新数组的长度

arr.unshift()将一个或者多个元素添加到元素开头,并且返回新数组的长度

删除

arr.pop()方法删除数组中最后一个元素,并且返回删除的元素(当数组为空时返回undefined) arr.shift()方法删除数组中第一个元素,并且返回删除的元素(当数组为空时返回undefined)

就地删除:

1
2
3
4
5
splice(start)
splice(start, deleteCount)
splice(start, deleteCount, item1)
splice(start, deleteCount, item1, item2)
splice(start, deleteCount, item1, item2, /* …, */ itemN)

函数

函数的作用

通过封装,提高代码复用性

函数定义

function 函数名(参数) { 函数体 return 返回值}

函数命名规范:

  • 和变量命名基本一致
  • 小驼峰命名法
  • 前缀应该为动词

函数调用:函数名(参数列表)

函数的参数以及默认参数

术语:

  • 形参与实参
  • 缺省参数:定义时等号赋值

注意事项:

  • 调用时少传了参数,则缺少的参数值为undefined
  • 调用时多传了参数,则多余的参数不做处理

函数返回值

  • 函数使用return关键字返回函数的返回值
  • return语句之后的代码不再执行,因此 return 下面不要写代码
  • javascript不支持多返回值,要返回多个值,应该使用容器(数组、字典等)对象返回
  • 没有书写return语句的函数,其返回值是undefined

变量的作用域

  • 局部作用域(函数内部let定义)
  • 全局作用域(函数外部let定义)
  • 变量向上查找机制,就近一致原则

匿名函数

函数既可以作为参数也可以作为返回值

函数表达式

1
2
3
let fn = function () {
  console.log('hello world')
}

函数表达式与具名函数的不同之处:

  • 具名函数的调用位置随意
  • 函数表达式必须先声明再使用

立即执行函数

立即执行函数是为了避免全局变量的污染

1
2
3
4
// 第一种写法
;(function () {})()
// 第二种写法
;(function () {})()

带参数的立即执行函数:

1
2
3
;(function (x, y) {
  console.log(x, y)
})(x, y)

逻辑中断

  • 逻辑与左边为 false 就中断,两边都为真时取后面的值
  • 逻辑或左边为 true 时就中断。两边都为真时取前面的值
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计