首页 > 编程语言 >JavaScript—函数

JavaScript—函数

时间:2023-09-01 19:48:07浏览次数:41  
标签:function arr console 函数 JavaScript var log

函数的概念

在js里面,可能会定义非常多的相同代码或功能相似的代码,这些代码需要大量重复地使用。

函数就是封装了一段可被重复调用的代码块。通过代码块实现大量代码的重复使用。

函数示例
//常规方法
var sum = 0;
        for (var i = 1; i <= 100; i++) {
            sum += i;
        }
        console.log(sum);       //输出1~100的和
        var sum1 = 0
        for (var i = 1; i <= 10; i++) {
            sum1 += i;
        }
        console.log(sum1);       //输出1~10的和
        var sum2 = 0;
        for (var i = 1; i <= 5; i++) {
            sum2 += i;
        }
        console.log(sum2);       //输出1~5的和
//函数法
function getSum(begin, end) {
            var fSum = 0;
            for (var i = begin; i <= end; i++) {
                fSum += i;
            }
            console.log(fSum);
        }
        getSum(1, 100);        //输出1~100的和
        getSum(1, 10);        //输出1~10的和
        getSum(1, 5);        //输出1~5的和

函数的使用

函数的使用步骤是声明函数调用函数

  1. function声明函数的关键字
  2. 函数是做某件事,函数名一般用动词
  3. 函数不调用自己不执行
  4. 调用时需要带上小括号

函数的封装就是把一个或多个功能通过函数的方式封装起来,对外只留有一个简单的函数接口。(类似打包)

参数 说明
实参 形式上的参数函数定义时,传递的参数
形参  
带参数的函数
function getSum(begin, end) {        // begin与end为形参
            var fSum = 0;
            for (var i = begin; i <= end; i++) {
                fSum += i;
            }
            console.log(fSum);
        }
        getSum(1, 100);        //把1(实参)赋值给begin(形参),把100(实参)赋给end(形参)。输出1~100的和 
        getSum(1, 10);        //输出1~10的和
        getSum(1, 5);        //输出1~5的和

函数的参数

  1. 函数可以带参数也可不带。
  2. 声明函数时,函数名括号内为形参,默认值为undefined。
  3. 调用函数时,函数括号内是实参。
  4. 形参与实参个数不匹配结果不确定,尽量匹配。
函数形参与实参个数对应情况
function getSum(num1, num2) {
            console.log(num1 + num2);
        }
        getSum(1, 0);        // 形参与实参个数相同正常输出
        getSum(1, 0, 2);        //如果实参个数多于形参,只取到形参个数(多出部分忽略)
        getSum(1);      // 实参个数小于形参,num2是一个变量但是没有接受值所以结果为undefined(未定义)所以输出NaN

函数的返回值

有时需要获取函数的返回值,可以通过return实现。

函数的返回值
function getResult() {
            return 10;
        }
        console.log(getResult());
返回两个数中小的值
 function getMin(num1, num2) {
            return num1 < num2 ? num1 : num2;
        }
        console.log(getMin(1, 0));
函数返回数组中的最大值
 function getArr_Max(arr) {
            var max = arr[0];
            for (var i = 1; i <= arr.length; i++) {
                if (arr[i] > max) {
                    max = arr[i];
                }
            }
            return max;
        }
        var _Max = getArr_Max([1, 7, 4, 5, 1, 6, 7, 3]);
        console.log(_Max);
return终止函数
 function getResult() {
            return 10;
            console.log('不被执行的内容');      // return返回后函数终止后面的语句不再执行
        }
        console.log(getResult());
return值的个数
function getResult() {
            return 10, 0, 1;        // 返回最后一个值
        }
        console.log(getResult());

function getResult() {
            return [0, 1, 2, 3, 4, 5, 6]        // 返回一个数组(数组内可以有多个值)
        }
        console.log(getResult());
函数无返回值
 function getResult() {

        }
        console.log(getResult());        // undefined

arguments的使用

 当我们不确定有多少个参数传递的时候,以用arguments来获取。在JavaScript中,arguments实际上它是当前函数的一个内置对象。所有函数都内置了一个arguments对象,argumennts对象中存储了传递的所有实参。只有函数才有argumennts对象,每个函数都内置有argumennts。

argumennts展示形式是一种伪数组,因此可遍历。伪数组具有以下特点:

  1. 具有length属性
  2. 按索引方式储存数据
  3. 不具有数组的push(),pop()等方法
arguments的使用
function getResult() {
            console.log(arguments);        //里面存储了所有传来的实参
        }
        getResult(1, 2, 3, 4, 5, 6, 7);
arguments取任意个数中的最大值
 unction getResult() {
            var Max = arguments[0];
            for (var i = 0; i <= arguments.length; i++) {
                if (arguments[i] > Max) {
                    Max = arguments[i];

                }
            }
            return Max;
        }
        console.log(getResult(1, 2, 3, 4, 5, 6, 7));

函数案例

利用函数翻转数组
 function reverse(arr) {
            var arr0 = [];
            for (var i = arr.length - 1; i >= 0; i--) {
                arr0[arr0.length] = arr[i];
            }
            return arr0;
        }
        var arr = reverse([1, 7, 4, 5, 1, 6, 7, 3]);
        console.log(arr);
冒泡排序
 function bubbleSort(arr) {
            for (var i = 0; i < arr.length - 1; i++) {
                for (var j = 0; j < arr.length - 1; j++) {
                    if (arr[j] > arr[j + 1]) {
                        var temp = arr[j];
                        arr[j] = arr[j + 1];
                        arr[j + 1] = temp;
                    }
                }
            }
            return arr;
        }
        var arr = bubbleSort([1, 7, 4, 5, 1, 6, 7, 3]);
        console.log(arr);
判断闰年
 function isLeapYear(year) {
            var flag = false;
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                flag = true;

            }
            return flag;
        }
        console.log(isLeapYear(2020));
函数互相调用
 function f1() {
            console.log(0);
            f2();
        }
        function f2() {
            console.log(1);
        }
        f1();
判断年份2月天数
  function backDay() {
            var year = prompt("请输入需要判断的年份:");
            if (isLeapYear(year)) {
                alert("该年份2月有29天");

            } else {
                alert("该年份2月有28天");
            }
        }
        function isLeapYear(year) {
            var flag = false;
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                flag = true;

            }
            return flag;
        }
        backDay();

 

函数的两种声明方式

函数关键字自定义函数
function fn() {
            console.log('利用关键字自定义函数(命名函数)');
        }
        fn();
函数表达式
 var fun = function () {
            console.log('函数表达式(匿名函数)');
        }
        fun();

 

 

标签:function,arr,console,函数,JavaScript,var,log
From: https://www.cnblogs.com/vayenge/p/17451673.html

相关文章

  • JavaScript—节点
    节点的概念节点:网页中的所有内容都是节点,例如标签、属性、文本、注释、回车、换行、空格等。节点属性:可以用标签--元素.出来,可以使用属性节点.出来,文本节点.点出来。nodeType:节点的类型:1-标签DIV-12-属性:class3-文本:innerTextnodeName:节点的名字:标签节点-大写的......
  • JavaScript—DOM
    传统获取方式传统方式元素获取方式<bodyclass="mybody"><inputtype="button"value="点击"id="btn"><divid="dv1"name="mydiv"class="cls"><p>111</p>......
  • JavaScript—BOM
    概念BOM(BrowserObjectModel)是指浏览器对象模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的window对象是BOM的顶层对象,其他对象都是该对象的子对象。我们在浏览器中的一些操作都可以使用BdM的方式进行编程......
  • JavaScript—轮播图
    概念轮播图(Carousel)是一种常见的网页设计元素,用于展示多张图片或信息。它通常由一个容器和一组水平排列的图片或内容组成。轮播图中的图片会按照一定的规律(例如自动轮播、点击切换或滑动切换等)进行切换,以便在有限的空间内展示多个内容。HTML元素网页元素<divclass="wrap">......
  • JavaScript—数组
    数组的概念数组是指一组数据的集合,其中的每一个数据称作元素在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的方式。创建数组创建数组vararr=newArray();//使用new创建一个空数组vararr0=[];//利用数组字面量创建数组vara......
  • JavaScript—作用域
    JavaScript作用域:就是代码名字(变量)在某个范围内起作用和效果。目的是/为了提高程序的可靠性同时减少命名冲突。JavaScript作用域在(es6)之前:全局作用域和局部作用域。全局作用域:整个Script标签或者一个单独的js文件。局部作用域:在函数内部就是局部作用域。这个代码名字只在函数......
  • JavaScript—内置对象
    内置对象是什么JavaScript中的对象分为三种:自定义对象,内置对象和浏览器对象。前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象属于我们JS独有的。内置对象就是指JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。内置......
  • JavaScript—对象
    为什么需要对象保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组。如果要保存一个人的完整信息(信息面板)呢?在JavaScript中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象,例如字符串、数值、数组、函数等。对象是由属性和方法组成。属性:事物的特征,在对象中用......
  • JavaScript—预解析
    预解析口诀:先声明再调用JavaScript代码是由浏览器中的JavaScript解析器来执行的。JavaScript解析器在运行JavaScript代码的时候分为两步:预解析和代码执行。 预解析的变量问题 /*console.log(unknow);*///报错:使用了未定义的变量console.log(num);......
  • JavaScript—简单类型与复杂类型
    简单数据类型的内存分配简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。(简单)值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型:string,number,boolean,undefined,null。简单数据类型存放在栈里面查看代码vartimer=null;......