首页 > Web开发 > 详细

js初学浅谈

时间:2020-03-22 22:04:35      阅读:80      评论:0      收藏:0      [点我收藏+]

  在防疫期间,坚持在家逆战学习,充实自己。韶华易逝,请珍惜时光吧!

  从刚接触JS,谈到它的组成,形式,基本语法,数据类型及其转换,变量的一

些规则,运算符,分支语句结构,循环语句结构,循环嵌套到函数创建,参数,返

回值,封装,预解析,变量的使用规则,对象的创建,操作;及至声明提升,作用

域和递归函数,严格模式,新数组的方法,ES5,数组、字符串、Math对象、Date

对象定义,常见的官方函数,属性,应用。以及BOM对象中的window属性,DOM

对象的增删改查及应用等等知识。在学习中,慢慢发现一些规律,总结出一些东西。

  其中我想讲一讲我认为的一些重难点。

  首先要说说两种排序,冒泡排序和选择排序。

 1 <script>
 2 function fn(){
 3     var arr=[5,3,7,1,2,8,3,1];
 5     // 需要5轮,分别拿出剩下的数中的最大的,最后一个数,就不用管了。
 6     for(var i=0;i<arr.length-1;i++){
 8         for(var j=0;j<arr.length-1-i;j++){
10             if(arr[j]>arr[j+1]){
11                 // 交换
12                 var temp = arr[j];
13                 arr[j] = arr[j+1];
14                 arr[j+1] = temp;
15             }
16         }
17     }
18     console.log(arr);
19 }
21 fn();
22 </script>

  这是冒泡排序核心代码,首先它的思路是相邻两个数进行比较,如果前一个数

大于后一个数,那么就交换,否则不交换,让大的数沉下去, 一共 6个数;做5次

循环。其中第六次不用循环就筛选出来了。每次循环里面又嵌套着依次递减着的比较,

在上面代码第八行。依次类推,直至循环比较晚,相对小的数浮上去,相对大的数沉下去为止。 

 
 1 <script>
 2 function fn(){
 3     var arr=[5,3,7,1,2,8];
 4     // 一共找出五个最小的数,最后一个不用管了,所以,六个数,循环5次。
 5     for(var i=0;i<5;i++){   
 6         // i=0   
 7         //1、找最小数
 8         var min = arr[i];
 9         var index = i;//index是最小数的下标
10         // 循环到底
11         for(var j=i+1;j<=5;j++){
12             if(arr[j]<min){
13                 min = arr[j];
14                 index = j;
15             }
16         }
17         //2、交换(数组中的最小数和arr[i])
18         var t = arr[i];
19         arr[i] = arr[index];
20         arr[index] = t;
21     }
22     console.log(arr);
23 }
24 fn();
25 </script>

  这是选择排序的核心代码,首先可以看到有两个大步骤:找最小数和交换。

从第一个数到最后一个数里找出最小数,把最小数和第一个数进行交换;从第二

个数到最后一个数里找出最小数,把最小数和第二个数进行交换;从第三个数到

最后一个数里找出最小数,把最小数和第三个数进行交换。依次类推,要进行五

次循环,和冒泡排序一样,第六次就不用管了。这里交换的是数组中的元素,就

是数组中的最小数和arr[i]交换,进而挑出最小数。

 

  冒泡排序是沉下去,浮出来,每到下一次不管上一次的最大数;选择排序是
每到下一次开始比较至最后数,然后拿小的和开始的数的位置交换。这就引出交
换的本质,我们可以看到冒泡排序和选择排序都有交换,像选择排序的交换是带
有最小数下标的那个数组的元素和我们最初假定的那个最小数arr[i]进行交换。
 
  我们可以看到选择排序代码18~20行,交换的代码中都有中间变量,我们叫这
个中间变量的盒子的名称为t,里面无值,那么左手是arr[i],右手是arr[index],它
们的盒子名称和值是相同的。我们让左手盒子里arr[i]的值给空盒子名t,再让右手
盒子里arr[index]的值给左手空盒子名arr[i],最后拿盒子t里的值arr[i]给空盒子名arr[index]。
这样经过t的过渡就完成了arr[i]和arr[index]值的交换,交换出了真正的数组中的最小数。如下图:
  技术分享图片
 
 
  然后我们说一下回调函数和调用封装函数的好处。
   技术分享图片
   技术分享图片
   
  如上图,把一个函数(A函数)作为另外一个函数(B函数)的参数,那么A函数叫作回调函数。
所谓回调就是把函数当参数传入另一个函数后,回过头来调用自身的过程。
 
 
  下面是封装后的函数
   技术分享图片
  封装后的函数是一个功能函数体,我们用它时直接调用它就行了,非常方便。
  回调函数和封装函数直接调用即可,体现了代码的复用性和模块化,使代码更加规整简洁,
内存消耗少,运行效率高。
   
 
  技术分享图片

   技术分享图片   技术分享图片

   技术分享图片

  上面是一个可变色进度条的定时器案例,阐述了定时器的定时和限制定时。定时器运用的地方还有很多,就不一一赘述了。

 

  本次分享到此结束,希望对您(们)有些许帮助。

js初学浅谈

原文:https://www.cnblogs.com/19692531491i-ang/p/12547573.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!