携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第6天,点击查看活动详情
数组的filter方法的return后写的是判断条件
- filter()方法就是用于在对数据进行遍历时,根据条件进行筛选
- 过滤器方法
语法: 数组.filter(function(item,index){ return 条件 })
说明:
每次遍历到的数组元素
item
每次遍历到的数组元素的下标
index
条件必须使用 return 条件
添加条件元素,并终被以数组的形式返回(你要定义变量接收)
let arr = [14, 20, 9, 7, 11];
let ret = arr.filter(function (item) {
// console.log(item);
return item <15
})
console.log(ret);
- 注意:
- 在数组的filter方法中的return后接的是判断条件,如:item<15;
- 这是filter方法的特殊规定(我感觉大概是因为JavaScript不太严谨的原因)
- 正常的函数中return 后接的是返回值,如数组的map函数return后是返回的新数组,自定义函数如果没有写return则返回值为undefined,也有一些是定义好的返回值,如数组的删除方法splice()返回值为被删除的元素
inner 和 inner() 的区别{函数名和函数名()的区别}
当函数内部没有自定义返回值(return)时
- 执行下面函数
function inner() {
let a = 10
console.log(a);
// return (a+5);
}
inner
inner()
console.log(inner);
console.log(inner());
- 返回结果:
- inner没有任何返回,没有报错也没有undefined,
- 通过断点调试我们发现,浏览器直接跳过了这条语句,没有任何执行
- inner()是调用函数返回了控制台输出10
- console.log(inner);控制台输出的是整个函数
- console.log(inner());控制台输出的是10和undefined
- 断点调试发现这条语句先调用函数,通过函数内部的 console.log(a);输出第一条10
- 然后执行console.log(inner());中的log输出inner()的返回值,但是由于函数中没有return ,所以输出默认值undefined
当函数内部有自定义返回值(return)时
- 我们把上面代码中的return语句 解开
- 执行代码
function inner() {
let a = 10
console.log(a);
return console.log(a+5);
}
inner
inner()
console.log(inner);
console.log(inner());
- 返回结果:
- inner没有任何返回,没有报错也没有undefined,
- 通过断点调试我们发现,浏览器直接跳过了这条语句,没有任何执行
- inner()是调用函数返回了控制台输出10
- console.log(inner);控制台输出的是整个函数
- console.log(inner());控制台输出的是10和15
- 断点调试发现这条语句先调用函数,通过函数内部的 console.log(a);输出第一条10
- 然后执行console.log(inner());中的log输出inner()的返回值,
- 但是由于函数中return console.log(a+5); ,所以输出默认值15
总结:
- inner只是表示函数的名字,直接作为单独语句不实现任何效果
- 但是吧inner作为一个变量名使用,它代表的是整个函数,console.log(inner);输出的是整个函数
- inner()单独使用是调用inner函数,会执行函数中的语句
- inner()如果放在语句中使用,首先也会执行函数中的语句,然后把返回函数的返回值(return),
- 例如 console.log(inner());先执行函数,输出10,然后控制台输出函数的返回值15.