作用域详解
1.变量使用的时候会先在自己本身所在的作用域内查找,找到就使用,找不到就向上级寻找,如果到了全局作用域还没找到就报错;
2.变量赋值:当你需要给你一个变量赋值的时候,先在自己作用域内部查找, 有就直接赋值, 停止查找,没有就去父级作用域查找,有就赋值,没有就再去父级查找,直到全局作用域都没有, 那么就定义为全局变量再进行赋值;
3.变量的定义:定义在哪一个作用域里面的变量,只能再这个作用域及其子级作用域内部使用,再所有祖先级作用域里面不能使用
JS 的函数
定义:js函数就是一个用来装代码的盒子,当你需要的时候把它打开就可以使用了; 是被设计为执行特定任务的代码块。
语法: 函数通过 function 关键词进行定义,其后是函数名和括号 ()。
函数名可包含字母、数字、下划线和美元符号(规则与变量名相同)。
圆括号可包括由逗号分隔的参数:(参数一,参数二…)
参数: 是当调用函数时由函数接收的真实的值 , 在函数中,参数是局部变量。
1.形参:就是自己封装的函数自定义的变量,用于接收函数被调用的时候传入的实参
2.实参:就是调用函数时传入的实际的参数,用于被形参代入执行
调用: 函数中的代码将在其他代码调用该函数时执行,可以把函数写在事件上,等被触发或者达到条件时在执 行,普通调用就直接写函数名就可以调用了。
返回值:return关键字,这个关键字后面的就是一个函数最终会返回的值或数据,并且之后的代码不会执行。
arguments:这是函数内部自带的一个属性,是一个伪数组,是所有实参的集合
arguments.length就表示这个函数传入的伪数组长度,可是通过下标的方式使用。
js常用方法—数组篇
- indexOf() 方法
作用: 查找数组中有没有某一个数据(按照索引正序查找 0 1 2 3 …)
语法: 数组.indexOf(要查找的数据)
数组.idnexOf(要查找的数据, 从哪一个索引开始)
第二个参数不写默认是 0
返回值: 是一个数字
如果有你要查找的数据, 那么返回的是第一个找到的数据的索引
如果没有你要查找的数据, 那么返回的是 -1*
- lastIndexOf() 方法
作用: 查找数组中有没有某一个数据(按照索引倒叙查找 9 8 7 6 …)
语法: 数组.lastIndexOf(你要查找的数据)
数组.lastIndexOf(你要查找的数据, 从哪一个索引开始)
返回值: 是一个数字
如果找到你要查找的数据了, 那么就返回第一个找到的数据的索引
如果没有找到你要查找的数据, 那么就返回 -1*
- forEach() 方法
作用: 就是用来循环遍历数组的, 等价于 for 循环遍历数组的地位
语法:
数组.forEach(function (item, index, arr) {})
返回值: 没有
- map() 方法
作用: 映射一个数组, 把原始数组里面的每一个数据映射倒新数组里面返回
语法:
数组.map(function (item, index, arr) {})
返回值: 就是一个新的数组
里面的每一项始从原始数组中映射过来的
- filter() 方法
作用: 把原始数组里面满足条件的数据过滤出来, 放在一个新数组里面
语法:
数组.filter(function (item, index, arr) {})
返回值: 就是一个新的数组
里面的每一项都是从原先数组中过滤出来的
- every() 方法
作用: 就是判断数组里面是不是 每一个 都是符合条件的
语法:
数组.every(function (item, index, arr) {})
返回值: 是一个布尔值
如果数组里面所有的数据都是满足条件的, 那么返回 true
只要数组里面有任意一个不满足条件, 那么返回 false
- some() 方法
作用: 就是判断数组里面是不是 某一个 是符合条件的
语法:
数组.some(function (item, index, arr) {})
返回值: 是一个布尔值
如果数组里面有任何一个是满足条件的, 那么返回 true
只有数组里面所有的都不满足条件的时候, 返回 false