js数组
创建数组
JS 中创建数组有两种方式:
创建一个新的空数组: var arr_name = new Array();
初始化新的空数组:var arr_name = [];
初始化非空数组:var arr_name=[‘aa’,’bb’,’cc’];
数组中可以存放任意类型的数据
获取数组中的元素
索引(下标):用来访问数组元素的序号(数组下标从0开始)
访问数组中没有索引值的元素,得到的值为underfined
数组的添加和修改
在末尾新增数据
数组[数组.length] = 新数据;
修改指定索引的数据
数组[0] = 新数据;
函数
函数就是封装了一段可被重复调用执行的代码块。通过此代码块可以实现代码的重复使用
函数的使用
// 声明函数
function 函数名() {
//代码块
}
//调用函数
函数名(); // 通过函数名称来调用函数
函数的参数
形参:函数定义时设置,接收调用时传入
实参:函数调用时传入小括号的真实数据
// 带参数的函数声明
function 函数名(形参1, 形参2 , 形参3...) { // 可以定义任意多的参数,用逗号分隔
// 函数体
}
// 带参数的函数调用
函数名(实参1, 实参2, 实参3...);
注意:在JavaScript中,形参的默认值是undefined。
函数的返回值
// 声明函数
function 函数名(){
...
return 需要返回的值;
}
// 调用函数,接受返回值
var result = 函数名();
作用域
变量的有效范围
作用域链
在访问变量时按照就近原则
类和对象
创建对象的三种方式
方式1
var userZS = {
// 左边表示对象的属性,右边表示对象的值
name: "张三",
gender: "男",
birthyear: 19920918,
addr: "老虎坡",
isMarried:"否",
salary: function() {
return 15000;
}
}
// 如果是通过对象封装的数据,可以直接通过.属性获取。
//对象中还可以封装函数。
方式2
利用new关键字创建对象:var zs = new Obect();
方式3
通过编写构造函数来创建对象
function User(name,gender,birthyear,addr,isMarried){
this.name=name;
this.gender=gender;
……
}
var zs=new User(name,gender,……);
谁调用有this的构造函数,那么this就代表谁
对象的遍历
for (var k in obj) {
console.log(k); // 这里的 k 是属性名
console.log(obj[k]); // 这里的 obj[k] 是属性值
}
js常用内置对象
- MATH对象
- 日期对象
创建一个JavaScript的Date实例,该实例呈现时间中的某个时刻
- 查看文档
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects
数组相关对象
- instanceof运算符
- instanceof可以判断一个对象是否是某个构造函数的实例
- Array.isArray()
-Array.isArray() 用于确定传递的值是否是一个 Array
数组元素的添加和修改
-push()方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度。
- pop()方法从数组中删除最后一个元素,并返回该元素的值。此方法会更改数组的长度。
- shift()方法从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。
- unshift() 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度。
let与const关键字
`var` 语句 用于声明一个函数范围或全局范围的变量。
const修饰
const:常量的值是无法改变的
也可以修饰对象和数组
let修饰
let语句声明一个块级作用域的局部变量
let允许你声明一个作用域被限制在块作用域中的变量、语句或者表达式。与var关键字不同的是,`var` 声明的变量作用域是全局或者整个函数块的。 `var` 和 `let` 的另一个重要区别,`let` 声明的变量不会在作用域中被提升,它是在编译时才初始化。
数组常用方法解析
at():根据索引返回对应的值
- 参数为负数:从后往前检索
- 匹配给定索引的数组中的元素。如果找不到指定的索引,则返回 undefined
indexOf():返回指定值(第一次出现)对应的索引
- 参数为负数:也是从指定的位置开始往后找
- 如果不存在,则返回 -1
lastIndexOf(): 返回元素最后一次出现的索引,从数组的后面向前查找(从右边向左边找)
- 如果不存在则返回 -1
- 参数为正数的时候也是从右边向左边找。
values()
将数组转换为迭代器进行遍历,可以使用增强For循环。concat()
用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数组。copyWithin()
复制数组的一部分到同一数组中的另一个位置,并返回它,不会改变原数组的长度。entries()
方法返回一个新的 Array Iterator 对象,该对象包含数组中每个索引的键/值对。every()
接受的参数是一个函数,它返回一个布尔值。
array1.every(isThreshold) //将左边数组中的每个值,都调用isThreshold进行计算
filter()
过滤数组的元素,该方法的返回值是true和false,最终将为true的结果进行返回。
文档:
https://developer.mozilla.org/zhCN/docs/Web/JavaScript/Reference/Statements/const#%E6%8F%8F%E8%BF%B0