一个函数要使用另一个函数中的数据

一个函数要使用另一个函数中的数据

1.把局部数据return出去,变成全局的数据

let fn1 = function(){
    let num = 10;
    return num;
}
let num = fn1();

let fn2 = function(){
    console.log(‘fn2‘num);
}
fn2();

2.通过调用函数时传参:让"函数的调用"跟局部的数据在同一个作用域

let fn2 = function(num){
    console.log(‘fn2‘,num);
}
let fn1 = function(){
    let num = 10;
    fn2(num);
}
fn1();

函数的作用域

作用域的分类

1.全局作用域

2.局部作用域(函数作用域,大括号里面的叫块级作用域)

3.eval()作用域:它会把括号里面的字符串当作正常的js代码进行解析然后运行

eval("console.log"(‘hello‘));

函数提升

声明式函数会发生函数提升,创建的整个函数全部提升到代码头部。

fn2();
function fn2(){
    console.log(‘hello‘);
}

1.函数是“一等公民”

2.提升时函数先提升,变量后提升

3.当变量未赋值时无法覆盖函数

4.但是变量如果赋值会覆盖函数

既没有没有let,也没有var的变量在哪里都是个全局变量

回调函数callback

概念:将一个函数A作为参数(实参)传递给函数B,然后,在函数B中调用函数A,那么,函数A就叫做回调函数。

function a(){
    console.log("a");
}
function b(callback){
    callback();
};
b(a);

console.log(a);
console.log(a());

arr.sort(function(){});

二.JS中常见的回调函数(操作数组的)

1·forEach();ES6 遍历数组 item元素 index下标

let arr = [10,11,12,13,14];
arr.forEach(function(item,index){
    console.log(index);
});

2.map();需要对数组中每一个元素做同样的操作的时候使用.会返回(得到)一个新数组

let arr = [10,11,12,13,14];
let newArr = arr.map(function(item,index){
    return item * 2;
});
console.log(newArr);

3.filter();当要给每一个数组做筛选的时候使用

let arr = [10,11,12,13,14];
let newArr = arr.filter(function(item,index){
    return item % 2 === 0;
});
console.log(newArr);    能够筛选出里面所有的偶数,并返回一个新数组

let arr = [10,11,12,13,14,10,11,12];
let newArr = arr.filter(function(item,index){
    return arr.indexOf(item) === index;

});
console.log(newArr);

4.reduce();

let arr = [10,11,12,13,14];
let result = arr.reduce(function(a,b){
    console.log(a,b);
    return a + b;
});
console.log(result);

let arr = [10,11,12,13,14];
let result = arr.reduce(function(a,b){
    return a > b ? a : b;
});                        找最大值
console.log(result);

5.every();对数组每一个元素做判断如果有一个为假全都是假(一假全假)

let arr = [10,11,12,13,14];
let result = arr.every(function(item,index){
    return item < 30;
});
console.log(result);

6.some();对数组的每一个元素做判断如果有一个元素为真全部都是真(一真全真)

let arr = [10,11,12,13,14];
let resule = arr.some(function(item,index){
    return item < 30;
});
console.log(resule);

随机数

console.log(Math.random() * 10 + 10);

Math.random()0-1取不到1

1-10
Math.random() * 9 + 1

1-20
Math.random() * 10 + 10

13-19
Math.random() * 6 + 13

原文地址:https://www.cnblogs.com/WangHaiFen9/p/9096773.html

时间: 2024-11-09 04:03:30

一个函数要使用另一个函数中的数据的相关文章

VBA从字符串中取出数据信息的函数

作者:iamlaosong 一个简单的函数,从包含有数字信息的字符串中取出这个数据,利用VAL函数将字符串转换为数值,该函数或略数字字符串后面的字母和汉字信息,所以,只要把数字前面的字母和汉字信息去掉就行了. '函数,从字符串"ABC123456.78DEF"中取出数据 Function mydata(mystring As String) As Double Dim i, k As Integer i = 1 k = Len(mystring) Do Until Val(Mid(my

oracle中的数据集合操作

一.数据更新操作 DML语法中主要包括两个内容:查询与更新,更新主要包括:增加数据.修改数据.删除数据.其中这些操作是离不开查询的.         1.增加数据 语法:INSERT INTO 表名称 [(字段名称1, 字段名称2,-)] VALUES(数据1,数据2-..): 注意:     1.对于字符串需要使用""括起来     2.对于时间可以使用to_date()进行转换     3.数字就直接写 范例:向myemp表中插入一条数据 INSERT INTO myemp(emp

从SQLserver中导出表数据到Access

每篇随便都得有个背景吧,这次做一个项目时,突然碰到这个样一个问题,需要将本地sqlserver中的数据导出到access后,再传输access数据库,所以就在想怎样实现这样的操作.后面经过在网上查找了一些资料结合以前的知识,搞了这样一个东西出来: 1 /// <summary> 2 /// 从sqlserver中导出数据到access 3 /// state=0 Jzjl 导出菜品信息表 4 /// state=1 lbxf_jz 导出收银信息表 5 /// </summary>

怎样简单灵活地将DataTable中的数据赋值给model

最近在做的一个项目中,有13个方法都需要用到同一种处理方式:通过SQL语句从数据库获取一条指定的数据,并将该数据中的每个值都赋值给一个model,再将这个model中的数据通过微信发送出去.每个方法都会从不同的表中获取数据,需要处理的数据完全不同,因此也对应了13个不同的model.这些model中的每个属性名称是已经给定的,需要将它们post出去,使用微信给定的模板发送消息,因此每个属性的名称必须与微信提供的模板中一致. 下面举个简单的例子来说明当前的情况: SQL Server中用来存放数据

[docker] 管理docker容器中的数据

之前我们介绍了Docker的基本概念(前面的没翻译...),了解了如何使用Docker镜像进行工作,并且学习了网 络和容器之间的链接.这一节我们将讨论如何管理容器中及容器之间的数据. 我们将查看下面两种管理Docker中数据的主要方法. 数据卷 数据卷容器 数据卷 一个数据卷就是经过特殊设计的,在一个或多个容器中通过UFS文件系统提供的一些特性 实现数据持久化或共享. 数据卷可以在容器之间共享和重复利用 可以对数据卷里的内容直接进行修改 对镜像的更新不会改变数据卷的内容 卷会一直持续到没有容器使

MSSQL之三 在表中操纵数据

创建了数据库和表之后,下一步是在数据库中存储数据.作为一个数据库开发人员,你将需要修改或删除数据.你可以通过使用Transact-SQL的数据操纵语言(DML)语句来完成这些数据操纵. 本章讨论如何使用DML语句来操纵表中的数据. 重点 ?      插入数据 ?      更新数据 ?      删除表中数据 预习功课 ?        插入部分数据 ?        批量插入数据 ?        在表中更新数据 ?        从表中删除数据 使用DML语句操纵数据 在表中存储数据 表创

输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩 从大到小打印。三个功能(输入是一个函数,求平均分是一个函数,排序是一个 函数)都用函数实现,最后在main方法中调用。

/*5.输入6个人的成绩放入到一个一维数组中,然后打印出平均分,最后按成绩从大到小打印.三个功能(输入是一个函数,求平均分是一个函数,排序是一个函数)都用函数实现,最后在main方法中调用.*/ #include <stdio.h> int inputScore(){ int score; scanf("%d",&score); return score;} double avg(int scores[],int length){ int i,score = 0;

24、输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变.  思路:新建一个数组先把原数组中的奇数push进去再把偶数push进去,然后用新数组数据覆盖原数组即可 复杂度O(n),用空间换时间 class Solution { public:     void reOrderArray(vector<int> &array) {         vector<int&

实现一个栈,并且实现一个min函数用来找当前栈中最小的元素

题目描述:实现一个栈,并且实现一个min函数用来找当前栈中最小的元素 分析:要找到栈中最小的元素,需要借助一个辅助栈,来存放当前栈中最小的元素. 入栈的时候,第一个入栈的元素,也给辅助栈入栈,此后每次入栈的元素先与辅助栈的栈顶元素比较,如果小于或等于辅助栈的栈顶元素,则同时将该元素给辅助栈入栈. 如下图所示: 出栈的时候,如果栈顶元素与辅助栈栈顶的元素相等,则同时对辅助栈进行出栈操作 如下图所示: 这样就可以保证,辅助栈中的栈顶元素始终是当前栈中最小的元素了 代码如下: #include<ios

编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中

#include<iostream> #include<string> #include<vector> #include<fstream> using namespace std; int main(int argc,char *argv[]) { ifstream input(argv[1]); vector<string> vec; string tmp; while(getline(input,tmp)) { vec.push_back(