JavaScript学习-3——数组、函数、递归
本章目录
-----------①数组
-----------②函数
-----------③递归
一、数组
弱类型:任何类型数据,且没有强度限制;
强类型:同一类型的数据存储的集合(内存中连续存储),有长度限制。
①创建数组:
//创建新数组
var arr = new Array();
//创建新数组并赋值
var arr = new Array(1,2,3,4,5,6);
②获取,数组的值:
var arr = new Array(1,2,3,4,5,6);
//获取相应序列的值
arr[0];
//序列从0开始,最大为长度-1;
alert(arr[1]);
//获取到数组中序列为1的数据。
输出结果:
③向数组中添加数据:
var arr = new Array(1,2,3,4,5,6);
arr[6]=10; document.write(arr[6]);
输出:
var arr = new Array(1,2,3,4,5,6);
var d =20;
for(var i=0;i<arr.length;i++){
if(d==arr[i]){
break;
}
if(i==arr.length-1){
arr[i+1]=d;
document.write(arr[i+1]);
}
}
输出:20
④输出索引号
var arr = new Array(1,2,3,4,5,6);
for(var a in arr){
document.write(a);
}
输出结果:
二、函数
四要素:
返回类型、函数名、参数列表、函数体
强类型语言:
int NAME (参数列表) { 函数体 }
类型 函数名 参数列表 函数体
弱类型语言:
function NAME(参数列表) {函数体}
//该函数封装完成后不是运行,需要调用
Show(); //调用函数
function Show(){
alert("这是一个简单的函数!!")
}
带有参数的函数
//这里的a是一个形参,假的参数(代号)
function(a){
alert(a);
}
Show("这是一个实参"); //实参,有真正值得参数 function Header(a,b){
alert(a+","+b)
}
Header(a,b); //输出两个参数的值
//传两个参数
有返回值得函数
function Show(a,b){
return(a+b);
}
var s =Show(1,2);
alert(s); // 返回3,
三、递归
例题:桃子
有一只猴子,每天吃一半桃子,扔一个坏的,第六天还剩一个,问一开始多少桃子?
//前一天数量 = (当前数量+1)*2
var sl =1;
function Show(n){
//给予第六天的桃子数量,使其只要6则传回1sl
if(n==6){
return sl;
}
else{
sl = (Show(n+1)+1)*2;
//计算公式:昨天的=[(今天天数+1)+1]*2
}
return sl;
}
alert(Show(1));
例题:阶乘
<script>
var n =prompt("请输入:","");
function Show(n){
//我们知道当n!,n=1或0的的时候阶乘为1;
if(n<1){
return 1;
}
//n! = (n-1)*n
else{
return Show(n-1)*n;
}
}
alert(Show(n));
</script>
当输入6时获得的结果:
是正确的。
例题、一共10级楼梯,每次可以走一步或两步,求一共多少种走法。
<script>
//一共10级楼梯,每次可以走一步或两步,求一共多少种走法。
function Show(n){
//第一阶有一种方法
if(n==1){
return 1;
}
//第二阶有两种方法:1+1 2
else if(n==2){
return 2;
}
//当前阶 = 上一阶的方法 + 前一阶的方法
else{
return Show(n-1)+Show(n-2);
}
}
console.log(Show(10));
</script>
输出结果:
正确
JavaScript学习-3——数组、函数、递归的更多相关文章
- JavaScript学习03 JS函数
JavaScript学习03 JS函数 函数就是包裹在花括号中的代码块,前面使用了关键词function: function functionName() { 这里是要执行的代码 } 函数参数 函数的 ...
- javascript学习总结之函数
前言 在学习javascript函数的时候,有几个经常很容易混淆的方法,call,apply,bind,caller,callee,这些方法的使用,这些也可以说是会频繁使用的一些方法,在此通过查阅相关 ...
- javascript之Array()数组函数讲解
Array()是一个用来构建数组的内建构造器函数.数组主要由如下三种创建方式: array = new Array() array = new Array([size]) array = new Ar ...
- 廖雪峰 JavaScript 学习笔记(函数)
JavaScript中,定义函数的方式如下: function abs(x) { if (x >= 0) { return x; } else { return -x; } } 上述abs()函 ...
- 【JavaScript学习笔记】函数、数组、日期
一.函数 一个函数应该只返回一种类型的值. 函数中有一个默认的数组变量arguments,存储着传入函数的所有参数. 为了使用函数参数方便,建议给参数起个名字. function fun1(obj, ...
- javascript学习笔记--迭代函数
概要 这里的迭代函数指的是对数组对象的操作方法,js数组共有五个迭代函数:every.fifter.forEach.map.some. 1.every every方法,返回值为Boolean类型,tr ...
- 04 Javascript的数据类型 数组 函数
javascript:包含ECMAscript DOM BOM 描述了以下内容: 语法 类型 语句 关键字 保留字 运算符 对象 引入方式: <script> alert(123) < ...
- Javascript 学习之数组 Array
数组在Javascript中占有很重要的地位.任何控件开发离不开数组的使用. 构造函数 new Array( ) new Array(size) new Array(element0, element ...
- JavaScript学习03(函数)
函数 函数定义 JavaScript 函数是通过 function 关键词定义的. 声明定义 function functionName(parameters) { 要执行的代码 } 被声明的函数不会 ...
随机推荐
- spring jpa 动态查询(Specification)
//dao层 继承 扩展仓库接口JpaSpecificationExecutor (JPA 2引入了一个标准的API)public interface CreditsEventDao extends ...
- spring boot 之 spring task(定时任务)
cron:通过表达式来配置任务执行时间cron表达式详解 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素.按顺序依次为: 秒(0~59)分钟(0~59)3 小时(0~23)4 天(0 ...
- Arcgis属性表出现乱码
解决方案一:导入符号化字体: 在C:\Windows\Fonts文件夹下放入.TTF格式的字体库(此时加入农村二调_0.TTF和TDT10142007.ttf),便可使符号化的乱码显示正常. 解决方案 ...
- Java分布式锁
分布式锁简述 在单机时代,虽然不存在分布式锁,但也会面临资源互斥的情况,只不过在单机的情况下,如果有多个线程要同时访问某个共享资源的时候,我们可以采用线程间加锁的机制,即当某个线程获取到这个资源后,就 ...
- PythonStudy——Python 内存池机制 (Memory pool mechanism) Pymalloc
Python是如何进行内存管理-内存池机制 Pymalloc Python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于对小块内存的申请和释 ...
- ARTIFICIAL INTELLIGENCE FOR GAMES (Ian Millington / John Funge 著)
相关网站:http://www.ai4g.com PART I AI AND GAMESCHAPTER1 INTRODUCTIONCHAPTER2 GAME AIPART II TECHNIQUESC ...
- fork exec source的区别
参考:http://www.cnblogs.com/bkygg/p/5023072.html 1:fork 运行的时候开一个sub_shell 执行调用的脚本,sub_shell执行的时候,pare ...
- 18.1 volatile的作用
volatile的作用是作为指令关键字,确保本条指令不会因编译器的优化而省略,且要求每次直接读值. 1.编译器的优化 在本次线程内,当读取一个变量时,为提高存取速度,编译器优化时有时会先把变量读取到一 ...
- CIFAR10数据可视化
一.数据准备 下载cifar-10-binary.tar.gz并解压,其中有多个bin文件,现对data_batch_1.bin进行可视化. 二.数据说明 该二进制文件存储的有10000张32X32的 ...
- 命令:jstack(查看线程)、jmap(查看内存)和jstat(性能分析)命令
命令:jstack(查看线程).jmap(查看内存)和jstat(性能分析)命令 这些命令 必须 在 linux jdk bin 路径 下执行 eq: ./jstack 10303 即可 如果想把 ...