JS--函数--渡一教育(视频笔记)

函数定义

1、函数声明

function 函数名([参数1,参数2,……]){

函数体

}

2、函数表达式

① 命名函数表达式

var test = function abc(){
   document.write(‘a’);
}//js中不会输出指针地址
//执行test(),输出a,test.name = abc
//控制台输入test,输出 function abc(){ document.write(‘a’); }
//而输入abc,则会报错,abc is not defined

② 匿名函数表达式(常用)

var demo = function (){
   document.write(‘b’);
}
//demo.name = demo

组成形式

1、函数名称:创建函数的名称,函数名是唯一的

2、参数:可选,外界传递给函数的值,当有多个参数时,各参数用“,”分隔

function sum(a,b){
   //arguments---[1,2,"abc",45]实参列表
   for(var i = 0; i < arguments.length; i++){
      console.log(arguments[i]);
   }//控制台输出所有实参
   //sum.length为形参长度/个数
}
sum(1,2,"abc",45)  //实参比形参多或形参比实参多均不报错,可以运行
//任意个数求和(不定参数)
function sum(){
   //利用实参列表
   var result = 0;
   for(var i = 0; i < arguments.length; i++){
      result += arguments[i];
   }
   console.log(result);
}
sum(1,2,3,4,5); //

① 形参

② 实参

//形参的值与arguments对应的值相互影响改变(映射),但两个值不是同一个东西
function sum(a,b){
   //arguments---[1,2]
   var a = 2;
   //console.log(arguments[0]); 输出结果为2
   arguments[0] = 3;
   //console.log(a); 输出结果为3
}
sum(1,2);

//arguments里的值一开始有几个就是几个,即使在函数内定义,arguments也不会增加
function sum(a,b){
   //arguments---[1]
   b = 2;
   console.log(arguments[1]); //输出结果为undefined,b和arguments[1]没有映射
}
sum(1);

3、返回值
return; 既终止函数也返回变量

作业

1、写一个函数,功能是告知你所选定的小动物的叫声

function voice(animal) {
   switch(animal) {
      case "dog": document.write('汪汪汪')break;
      case "cat": document.write('喵喵喵')break;
      case "sheep": document.write('咩咩咩')break;
      case "tiger": document.write('嗷呜')break;
   }
}

2、写一个函数,实现加法计算器

function sum(){
   var result;
   for(var i = 0; i < arguments.length; i++){
      result += arguments[i];
   }
   document.write(result);
}
sum(1,2,3,4,5,6,7,8,9,10);

3、定义一组函数,输入数字,逆转并输出数字的汉字形式

function reverse(){
   //输入字符串类型的数字  字符串的第几位的值:str.charAt() 或 str[]
   var num = window.prompt('input:');
   var str = "";
   for(var i = num.length - 1; i >= 0; i--){
      str += transfer(num.charAt(i));
   }
   document.write(str);
}
function transfer(target){
   switch(target){
      case "0": return "零"case "1": return "壹"case "2": return "贰"case "3": return "叁"case "4": return "肆"case "5": return "伍"case "6": return "陆"case "7": return "柒"case "8": return "捌"case "9": return "玖"}
}

4、写一个函数,实现 n 的阶乘

function factorial(n){
   if(n == 1 || n == 0){
      return 1;
   } //递归的出口
   return n * factorial(n - 1);//规律
}

5、写一个函数,实现斐波那契数列

function fibonacci(n){
   if(n > 0 || n <= 2){
      return 1;
   } //出口
   return fibonacci(n - 1) + fibonacci(n - 2);//规律
}

写一个方法,求一个字符串的字节长度。(提示:字符串有一个方法 charCodeAt(); 一个中文占两个字节,一个英文占一个字节)
定义和用法:charCodeAt()方法可返回指定位置的字符的 Unicode 编码。这个返回值是0 - 65535之间的整数。(当返回值是 <=255 时,为英文,当返回值 >255 时为中文)
语法:stringObject.charCodeAt(index)

var str = "hello world 邓哥身体好"//str.charCodeAt(0);第一个字符 h 的Unicode编码
function strlength(str){
    var count = 0;
    for(var i = 0;i < str.length;i ++){
        if(str.charCodeAt(i) > 255){
            count +=2;
        }else{
            count++;
        }
    }
    return count;
}

-------------方法二----------------
function strlength(str){
    var count = str.length;
    for(var i = 0;i < str.length;i ++){
        if(str.charCodeAt(i) > 255){
            count++;
        }
    }
    return count;
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值