js基础 函数相关练习题(一)

1、函数的参数,函数的返回值

function fn(num1,num2){
  var sum = num1 + num2;
  console.log(sum);
  console.log(num1);
  return;             //返回值
  console.log(num1);  //不执行
};
  fn(3,4);            //传实参

2、定义一个函数,输出1~100的累加和

function getSum(){
  var sum = 0;
  for(var i=1;i<=100;i++){
    sum += i;
  };
  return sum;
};
var res = getSum();
console.log(res);    //5050

3、定义一个函数,输出2000~2100年所有的闰年

function fn(){
  for(var i=2000;i<=2100;i++){
    if(i%4==0 && i%100!=0 ||i%400==0){
	  console.log(i);
	};
  };
};
fn();

4、简单函数的调用

function fn(){
  console.log('2');
};
fn();

5、调用带参数的函数

function printInfo(userName,userPwd){
  console.log('用户名'+userName+' '+'密码'+userPwd);
};
var userName = 'Tom';
var userPwd = '123';
printInfo(userName,userPwd);

6、调用带返回值的函数

function fn(num1,num2){
  var sum = num1+num2;
  return sum;
};
var res = fn(1,2);
console.log(res);

7、函数体内调用其他函数的复杂例子

function f3(){
  console.log('f3 begin');
  console.log('f3 end');
};
function f2(){
  console.log('f2 begin');
  f3();
  console.log('f2 end');
};
function f1(){
  console.log('f1 begin')
  f2();
  console.log('f1 end');
};
f1();
//等同于
function f1(){
  console.log('f1 begin')
  function f2(){
    console.log('f2 begin');
    function f3(){
      console.log('f3 begin');
      console.log('f3 end');
};
    console.log('f2 end');
};
  console.log('f1 end');
};
f1();
//打印结果
f1 begin
f2 begin
f3 begin
f3 end
f2 end
f1 end

8、定义一个可以接收两个数字的方法,返回这两个的和,并调用此方法。

function fn(num1,num2){
  var sum = num1 + num2;
  return sum;
};
var res = fn(1,1);
console.log(res);

9、定义一个可以接收三个number参数的方法,该方法返回这三个数中最大的那个值,调用此方法。

function getMax(num1,num2,num3){
  if(num1 > num2){
    var max = num1>num3 ? num1 : num3;
	return max;
  }else{
    var max = num2>num3 ? num2 : num3;
	return max;
  };
};
var res = getMax(1,2,3);
console.log(res);

10、局部变量和全局变量

var sum = 0;
function add(){
 var sum = 1+2;
  console.log(sum);  //3
};
add();
console.log(sum);    //0

var sum = 0;
function add(){
sum = 1+2;           
  console.log(sum);  //3
};
add();
console.log(sum);    //3

11、函数声明提前

console.log(fn());   //2
function fn(){
  return 2;
};
//等效于
function fn(){
  return 2;
};
console.log(fn());   //2

12、按值传递

var x = 100;
function fn(y){
  y++;
  console.log(y);    //101
};
fn(x);
console.log(x);      //100



//函数作用域
function outer(){    //全局函数
  console.log('1');
};
outer();             //正确

function outer(){
  function inner(){  //局部作用域
    console.log('1');
  };
};
inner();             //脚本错误

13、递归的原理及调用

function fn(n){
  var res = n==1? 1 : n*fn(n-1);
   return res;
};
var res1 = fn(5);
console.log(res1);    //120
//递归实现:边界条件,递归前进,递归返回
//当满足条件时,递归返回,否则,递归前进。
//执行流程
res = 5*fn(4)
    =5*4*fn(3);
	=5*4*3*fn(2);
	=5*4*3*2*fn(1);
	=5*4*3*2*1
	=120

14、使用递归计算斐波拉切数列

function fn(n){
  var res = n==1 || n==2 ? 1 : fn(n-1)+fn(n-2);
  return res;
};
var res1 = fn(10);
console.log(res1);
//解析
//n代表月份,f(n)代表n月对应的兔子总数;
//斐波拉切规律:f(n)=f(n-1)+f(n-2);
//本题任意输入月份数,打印出当月对应的兔子总数。
上一篇: js基础 数组(一)
下一篇: js基础 函数相关练习题(二)
作者邮箱: 203328517@qq.com