IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript函数 -> 正文阅读

[JavaScript知识库]JavaScript函数

一、函数

function sayHello () {        //function是声明函数的关键字(全部小写)

  // 函数体代码
}
sayHello() // 调用函数

1、是一个独立的功能模块,可以重复使用,维护方便。
2、使用:
????????(1)声明:定义函数
????????(2)调用:
3、声明语法:

function 函数名([参数]){
?? ??? ? ? ?函数体语句;
?? ??? ?}

????????(1)'function':是关键字,必须小写
????????(2)'函数名':用户标识符,建议采用驼峰命名(第一个单词是动词,后面的单词首字母大写),做到'见名知义'。
????????(3)'参数':函数可以有参数也可以没有参数。'()'不能省略的

函数的参数分为形参和实参

形参: 在声明函数时 ,在 函数名称后面的小括号中 添加 一些参数

实参:当函数调用的时候,需要传递相应的参数,这些参数称为实参

function 函数名(形参1, 形参2, …) { // 函数声明的小括号中的是形参
  // 函数体代码
}
函数名(实参1, 实参2, …)                  // 函数调用的小括号中的是实参

函数的参数允许形参和实参的个数不同:

当实参数量多于形参数量时, 函数正常 执行,多余的 实参会 被忽略
当实参数量小于形参数量时,多出来的形参类似于一个已声明未赋值的变量,其值为 undefined
function getSum(num1, num2) {
  console.log(num1, num2);
}
getSum(1, 2, 3);	// 实参数量大于形参数量,输出结果:1 2
getSum(1);           // 实参数量小于形参数量,输出结果:1 undefined

????????(4)'{}':表示函数的作用范围
注意:函数定义后并不会执行,只有当函数调用后才会执行

4、函数的调用:
????????(1)直接调用:
????????函数名(参数)
????????(2)触发事件调用:
????????事件名 = 函数名(参数)
5、Node.js:
????????(1)构建JavaScript程序的独立的运行环境
????????(2)创建后台程序
????????(3)环境变量:当应用程序的安装路径和用户程序的路径不同时,计算机系统可以找到应用程序的位置

6、DOS(Disk Option System)
????????(1)目录(文件夹)转换:
????????cd 文件夹名
????????. :表示当前目录(文件夹)
???????? .. :表示当前目录的上一级目录
???????? \ : 表示根目录(从盘符开始的目录)
????????(2)列举目录下的文件和文件夹:
???????? dir
???????? dir /p: 分屏显示文件和文件夹
???????? dir /w: ?宽屏显示文件和文件夹

7、函数的参数:参入运算的数据
????????(1)形参(形式参数):在函数定义时出现在函数首部的参数,只是占位符,没有实际的数据
????????(2)实参(实在参数): 在函数调用时出现在函数首部的参数,是有确定值的变量或常量
????????(3)参数之间的数据传递:实参将数据传递给形参(按值传递),传递的方向是单向的(实参-->形参)
?? ??? ? ? ? ? ? ? ? ? ? ? ? ? 数据传递时实参和形参按从左到右一一对应匹配与名称无关
???????(4)参数的数量:函数的实参和形参的个数可以不同
????????A、实参的个数多于形参的个数:函数正常运行,多余的实参被忽略
????????B、实参的个数少于形参的个数: 多余的形参会变成undefined的变量
8、函数的返回值:函数可以有返回值,也可以没有返回值。
????????(1)有返回值的函数:函数体中通过return语法返回一个值,这个决定程序下一步操作
????????(2)无返回值的函数:函数只实现某种功能,不需要返回值(函数体中没有return语句)

function 函数名() {
  return 要返回的值; // 利用return返回一个值给调用者
}

?练习:

//定义一个函数,实现对数组的排序(插入法)

function fun(arr){
    for(i=0;i<a.length;i++){
        for(var j=i;j>0;j--){
            if(arr[j-1]>a[j]){
            var temp =arr[j-1];
            arr[j-1]=a[j]
            arr[j]= temp
            }
        }
    }
}

var a=[1,3,2,5,4];
console.log("排序前的数组是:",a);
fun(a);
console.log("排序后的数组是:",a);

??

9、arguments的使用:是JavaScript的一个内置对象(是一个数组),保存了调用函数时传递的所有实参

不确定函数中接收到了多少个实参的时候,可以用arguments来获取实参。这是因为arguments是当前函数的一个内置对象,所有函数都内置了一个arguments对象,该对象保存了函数调用时传递的所有的实参

function fn() {
  console.log(arguments);	  // 输出结果:Arguments(3)?[1, 2, 3, …]
  console.log(arguments.length);  // 输出结果:3
  console.log(arguments[1]);         // 输出结果:2
}
fn(1, 2, 3);


10、回调函数:将函数A作为参数传递给函数B,在函数B中调用函数A,函数A称为回调函数

function cal(num1, num2, fn) {
  return fn(num1, num2);
}
console.log(cal(45, 55, function (a, b) {
  return a + b;
}));
console.log(cal(10, 20, function (a, b) {
  return a * b;
}));2

11、函数的递归调用:
????????(1)什么是递归:函数自己调用自己
????????(2)用递归解决问题条件
????????A、问题可以分解,分解后得到的新问题的解法与原问题的解法相同
????????B、分解的过程要有明确的结束条件
????????(3)递归的过程:

????????A、自上而下分解问题:5!
?? ??? ? ? ? ?5!-->5*4!
?? ??? ??? ? ? ? ? ? ?4! -->4*3!
?? ??? ??? ??? ??? ? ? ? ? ? ?3!-->3*2!
?? ??? ??? ??? ??? ??? ??? ? ? ? ? ? 2!-->2*1!
????????B、自下而上回溯得到问题的解?
?? ? ? ? ? ? ?1!-->2!-->3!-->4!-->5!

?????????练习:
?? ??? ??? ?2、输出斐波拉契数列的前20项之和
?? ??? ??? ?
?? ??? ??? ? ? 1 ?1 ?2 ?3 ?5 ?8 ?13 ?21...

//输出斐波拉契数列的前20项之和

function fun(n){
    if(n==1 || n==2){
        return 1;
    }else{
        return fun(n-1)+fun(n-2);
    }
}

var sum=0;
for(var i=1;i<=20;i++){
    sum += fun(i)
}
console.log("斐波拉契数列的前20项之和为:",sum)

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-19 17:32:40  更:2021-11-19 17:33:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 21:18:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码