学习js第三天小结
1.冒泡排序分析:
例:将数组[9,8,7,6,5,4,3,2,1,0]按照从小打大的顺序进行冒泡排序。
演变过程:
第一趟:
8,7,6,5,4,3,2,1,0,9 比较了9次;
第二趟:
7,6,5,4,3,2,1,0,8,9 比较了8次;
第三趟:
6,5,4,3,2,1,0,7,8,9 比较了7次;
第四趟:
5,4,3,2,1,0,6,7,8,9 比较了6次;
第五趟:
4,3,2,1,0,5,6,7,8,9 比较了5次;
第六趟:
3,2,1,0,4,5,6,7,8,9 比较了4次;
第七趟:
2,1,0,3,4,5,6,7,8,9 比较了3次;
第八趟:
1,0,2,3,4,5,6,7,8,9 比较了2次;
第九趟:
0,1,2,3,4,5,6,7,8,9 比较了1次;
外层循环循环1次,内层循环9次。
外层趟数一共是数组长度(array.length-1),设置外层循环for(var i=0;i<array.length-1;i++)
内层比较次数随着外层趟数的增加而递减,但是比较的次数与外层的趟数的和为10即数组长度array.length.所以设内层循环为for(var j=0;j<array.length-1-i) ----减去i是为了提升效率后面不需要再进行比较了(每次的比较次数都在递减)。
实例:
冒泡排序,从小到大 [65,97,76,13,27,49,58]
var array=[65,97,76,13,27,49,58];
for(var i=0;i<array.length-1;i++){
for(var j=0;j<array.length-1-i;j++){
if(array[j]>array[j+1]){
var temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
console.log(array);
//从大到小排序
var array=[65,97,76,13,27,49,58];
for(var i=0;i<array.length-1;i++){
for(var j=0;j<array.length-1-i;j++){
if(array[j]<array[j+1]){
var temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
console.log(array);
2.函数
函数:代码复用的一种机制或封装某种功能的代码段。
函数的定义:
function 函数名([参数列表]){
函数体(都是可执行的或是要执行的代码);
}
函数名:一般是一个动词,代表某种功能,名字最好也要遵循驼峰命名法。
函数的调用: 函数名();
函数的好处:一次声明或定义,多次调用。
函数的组成----三要素: 函数的三要素: 函数名(函数的功能),参数,返回值
每一个函数都有返回值,如果没有明确的返回值,一般返回undefined。
函数的形参与实参:
在函数调用的时候,会将函数的实参复制一份传给形参之中,函数的形参与实参的个数是可以不一样的。
var i= 0;
function getSum(a,b,c){ // 在函数定义的时候,使用的参数叫做形参,起占位置的作用
// arguments
a = a || 0;
b = b || 0;
c = c || 0;
console.log(a+b+c);
} getSum(10,20);//在函数真正的调用的时候,传入的数据,才是实参
函数里return的用法:
Return一般返回的是函数之中的数据,return之后如果跟着的是数据,那么该数据就是整个函数最后的返回值。程序运行时会将这个值先返回出去,接着跳出当前函数,后面的代码就不再执行了。若是return之后没有数据,程序运行到此之后就会立刻跳出当前函数,之后的代码都不会再执行。
function getSum(a,b){
a = 100;
return a + b ; //将计算后的结果用关键字return返回出去
console.log("看我执行了没有。。。。"); // return后面的代码不再执行
}
var num = getSum(a,b);
console.log(num*2);
函数的嵌套:一个函数里调用里一个函数。
例:
求3个数中的最大值
function max(a,b){
if(a>b){
return a ;
}else{
return b;
}
}
function max2(a,b,c){
// var d=max(a,b);
// var e=max(d,c);
var f=max(max(a,b),c); //函数max2之中调用了max的函//数方法
// return e;
return f;
}
console.log(max2(4,8,10));
学习js第三天小结的更多相关文章
- 学习javascript数据结构(三)——集合
前言 总括: 本文讲解了数据结构中的[集合]概念,并使用javascript实现了集合. 原文博客地址:学习javascript数据结构(三)--集合 知乎专栏&&简书专题:前端进击者 ...
- X-Cart 学习笔记(三)X-Cart框架2
目录 X-Cart 学习笔记(一)了解和安装X-Cart X-Cart 学习笔记(二)X-Cart框架1 X-Cart 学习笔记(三)X-Cart框架2 X-Cart 学习笔记(四)常见操作 3.了解 ...
- 学习KnockOut第三篇之List
学习KnockOut第三篇之List 欲看此篇---------------------------------------------可先看上篇. 第一步,先搭建一个大概的框架起来 ...
- (转载)CSS3与页面布局学习总结(三)——BFC、定位、浮动、7种垂直居中方法
目录 一.BFC与IFC 1.1.BFC与IFC概要 1.2.如何产生BFC 1.3.BFC的作用与特点 二.定位 2.2.relative 2.3.absolute 2.4.fixed 2.5.z- ...
- .NET MVC 学习笔记(三)— MVC 数据显示
. NET MVC 学习笔记(三)—— MVC 数据显示 在目前做的项目中,用的最多的数据展示控件就是table展示(说不是的请走开,不是一路人),以下详细阐述下table的使用方法. 先看效果: 上 ...
- The Road to learn React书籍学习笔记(第三章)
The Road to learn React书籍学习笔记(第三章) 代码详情 声明周期方法 通过之前的学习,可以了解到ES6 类组件中的生命周期方法 constructor() 和 render() ...
- sql server 关于表中只增标识问题 C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件) ajaxfileupload插件上传图片功能,用MVC和aspx做后台各写了一个案例 将小写阿拉伯数字转换成大写的汉字, C# WinForm 中英文实现, 国际化实现的简单方法 ASP.NET Core 2 学习笔记(六)ASP.NET Core 2 学习笔记(三)
sql server 关于表中只增标识问题 由于我们系统时间用的过长,数据量大,设计是采用自增ID 我们插入数据的时候把ID也写进去,我们可以采用 关闭和开启自增标识 没有关闭的时候 ,提示一下错 ...
- Vue.js+vue-element搭建属于自己的后台管理模板:更深入了解Vue.js(三)
前言 上一章我们介绍了关于Vue实例中一些基本用法,但是组件.自定义指令.Render函数这些放到了本章来介绍,原因是它们要比前面讲的要难一些,组件是Vue.js最核心的功能,学习使用组件也是必不可少 ...
- 前端学习:JS(面向对象)代码笔记
前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...
随机推荐
- HappytimeOnvif Client V8.3的使用
1.system-->system settings-->勾选RTP RTSP 2.start video poll
- 我对 前端 Js 开发方式 架构方向 的 一些看法
有 网友 提到 : “复杂的页面,一个页面加载的模块多,各种异步请求,页面渲染,jquery链式编程操作dom数过于频繁.现在的前台越来越复杂,逻辑臃肿.” 哎, 所以 我说, 要改成用 同步调用 . ...
- linux Centos 服务器之间NFS文件共享挂载
linux Centos 6.9服务器之间文件共享挂载 目的:因为服务器设置了负载均衡,多服务器的文件上传必然要同步,这里的目的把服务器1设置为主文件服务器 服务器1:192.168.1.100(共享 ...
- mysql 删除数据库中所有的表中的数据,只删database下面所有的表。
select concat('drop table ',table_name,';') from TABLES where table_schema='数据库名称'; select concat('t ...
- windows环境下把Python代码打包成独立执行的exe
windows环境下把Python代码打包成独立执行的exe可执行文件 有时候因为出差,突然急需处理一批数据.虽然写好的脚本存储在云端随用随取,然而编译的环境还需要重新搭建,模块也需要重新装载,从 ...
- msp430及stm32中基本的C编程知识
为什么我使用P1OUT ^= 0x01;和P1OUT = 0x01 ^是异或计算符号 所以 每次运算都是反转的.而不不加这个运算符就是一直保持1的状态. p1out|=bit6的意思p1out的值如果 ...
- Ubuntu PPA软件源
PPA,其英文全称为 Personal Package Archives,即个人软件包档案.是 Ubuntu Launchpad 网站提供的一项源服务,允许个人用户上传软件源代码,通过 Launchp ...
- php mongo类
看了好多mongo类都不尽人意.最后发现根本不需要自己封装类.php mongo 的扩展自带的方法就已经很方便了 但是习惯性的把数据库连接部分封装起来.最后我就封装了一个单例模式的数据库类 使用单例模 ...
- putty删除键backspace设置
putty连接unix登陆后,编辑命令输入错误时要修改,可是习惯性的按backspace键或者Delete键都出现一堆奇怪的字符,无法删除出错的命令语句. 修正方法如下: ************** ...
- 【转】[Android] NDK独立编译——独立工具链
转载地址:https://blog.csdn.net/suningning/article/details/74510125