首页 > 编程语言 >JavaScript函数变量的生命周期,自执行函数、闭包、反转数组案例及冒泡排序案例

JavaScript函数变量的生命周期,自执行函数、闭包、反转数组案例及冒泡排序案例

时间:2023-11-04 15:34:00浏览次数:33  
标签:function arr 函数 冒泡排序 li 案例 数组 var

一、变量的生命周期

JavaScript 变量的生命期从它们被声明的时间开始。

局部变量会在函数运行以后被删除。

全局变量会在页面关闭后被删除。

二、自执行函数

执行函数通常都是定义之后立即执行,以后都不再会调用,所以声明时可以省略函数名,因此自执行函数又叫匿名函数。

通用的自执行函数方式有两种:

1、在给该函数加上小括号,后面紧跟小括号

(function(){console.log('我是匿名函数')})()

2、在函数后边加上小括号,然后再用个小括号把函数和小括号一起包起来

(function(){console.log('我是匿名函数')}())

案例:一个列表里有6个li,要求点击li的时候打印当前被点击li的索引。

<ul>
        <li>这是第1个li</li>
        <li>这是第2个li</li>
        <li>这是第3个li</li>
        <li>这是第4个li</li>
        <li>这是第5个li</li>
        <li>这是第6个li</li>
    </ul>
<script>
        //函数的自执行
        // (function(){
        //     console.log('123456');
        // })()
        //
        var lis = document.querySelectorAll('li');
        for (var i = 0; i < lis.length; i++) {
            (function(i){
                lis[i].index = i;
                lis[i].onclick = function () {
                console.log(this.index)
              }
            })(i)
            
        }
    </script>

点击对应li获取下标

三、闭包

闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

总而言之,闭包就是对函数的嵌套

四、反转数组案例

第一种方法:

         // var arr = [78,11,22,77,45,1,6]
        // function reverse(arrone){
        //     var newArr=[];
        //     for(var i = 0 ;i<=arr.length-1;i++){
        //         newArr[arr.length-1-i] = arr[i];
        //     }
        //     return newArr;
        // }
        // console.log(reverse(arr));

核心思想,是创建一个新的数组,使原数组的下标到新数组时从后向前排列newArr[arr.length-1-i] = arr[i];

第二种方法:

        function reverse(arrone){
            var newArr = [];
            for(var i = arrone.length-1; i>=0;i--){
                newArr[newArr.length] = arrone [i]
            }
            return newArr;
        }
        var arr = reverse([78,11,22,77,45,1,6]);
        console.log(arr);

核心思想,创建一个新数组,使原数组按照倒着的顺序排放进新数组,最后将新数组输出

 

五、冒泡排序

封装一个函数,输入任意一个数,都能让这个数组从大到小进行排序
        var arr =[];
        function list(arr){
             var temp;
             for(var l = 0;l<=arr.length-1;l++){
             for(var b=0;b<=arr.length-1-l;b++){
                 if(arr[b]<arr[b+1]){
                     temp = arr[b+1]
                     arr[b+1] = arr[b]
                     arr[b] = temp
                 }
             }
         }
         console.log(arr);
         }
         list([5,35,4,1,88,45,12,41,31,66])

 

核心:设置一个第三方变量,当后者大于前者时,用三个变量之间交换位置的方法依次进行排序 

标签:function,arr,函数,冒泡排序,li,案例,数组,var
From: https://www.cnblogs.com/ljygzyblog/p/JavaScript-10.html

相关文章

  • 实验3 C语言函数应用编程
    任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN8067voidprint_text(intline,intcol,chartext[]);8voidprint_spaces(intn);9voidprint_blank_lines(intn......
  • C语言小案例
    1.设计一个递归函数,计算Ackerman的值。Ackerman函数定义如下:       n+1                 m=0A(m,n)=A(m-1,1)             m≠0,n=0       A(m-1,A(m,n-1))        m≠0,n......
  • JavaScript如何定义类与函数如何实现继承自Object类实现方法------前端
    HTML页面用于展示<!DOCTYPEhtml><!--这是HTML的注释--><htmllang="en"id="myHtml"> <head> <!--这里不是设置了编码,而是告诉浏览器,用什么编码方式打开文件避免乱码--> <metacharset="UTF-8"> <metaname="viewport"......
  • JavaScript Array对象(属性、方法) 留言板案例
    一、创建数组对象的方式vararrOb=newArray(值,........)vararrOb=Array(值,.......)vararrOb=[值,.........]vararrOb=newArray(n);arrOb[0]=值1;arrOb[1]=值2;二、数组的属性length   //数组中元素的数目vararr=['云南','九寨沟','拉萨','西双版纳','......
  • JavaScript 函数、函数构造、函数调用、参数、函数返回值、变量的作用域、预解析
    一、函数及函数的构造函数是一个可重用的代码块,用来完成某个特定功能。每当需要反复执行一段代码时,可以利用函数来避免重复书写相同代码。函数包含着的代码只能在函数被调用时才会执行,就可以避免页面载入时执行该脚本简单来说就是一个封装,封装的是一个特定的功能,重复使用函......
  • python_冒泡排序
    #冒泡排序list1=[82,33,96,33,60,77,12,0]#控制比较多少轮,有n个数时需要比较的轮数是n-1foriinrange(len(list1)-1):#控制每轮比较的次数forjinrange(len(list1)-1-i):iflist1[j]>list1[j+1]:#交换两数的位置......
  • 如何求函数的对称中心和对称轴|探究拓宽
    预备知识1、多项式函数\(y=f(x)=ax^4+bx^3+cx^2+dx+e\)为奇函数的充要条件是\(a=c=e=0\).分析:由于函数\(f(x)\)为奇函数,故有\(f(-x)+f(x)=0\)恒成立,即\(\bigg[a(-x)^4+b(-x)^3+c(-x)^2+d(-x)+e\bigg]\)\(+\)\(\bigg(ax^4+bx^3+cx^2+dx+e\bigg)=0\)恒成立,即\(2a\cdotx......
  • Python分享之内置函数清单
    Python内置(built-in)函数随着python解释器的运行而创建。在Python的程序中,你可以随时调用这些函数,不需要定义。最常见的内置函数是:print("HelloWorld!")在Python教程中,我们已经提到下面一些内置函数:基本数据类型type()反过头来看看dir()help()len()词典len()文本文......
  • 一些有用的css函数
    var使用自定义的属性值。:root{--main-bg-color:pink;}body{background-color:var(--main-bg-color);}attr使用html上data-*属性引用的文本。<pdata-foo="hello">world</p>p:before{content:attr(data-foo)"";}属性也可以被解析为colo......
  • 实验3—C语言函数应用编程
    1、实验任务1源代码1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#include<windows.h>5#defineN806voidprint_text(intline,intcol,chartext[]);//函数声明7voidprint_spaces(intn);//函数声明8voidprint_b......