前端JavaScript-day04 函数

1.函数的概念和作

思考:
如果要在多个地方求1-100之间所有数的和,应该怎么做? 什么是函数

什么是函数

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。函数可以封装一段JavaScript 代码,它只定义一次,但可以被执行或调用任意多次

函数的作用有哪些?
使程序变得简洁清晰
易于代码维护
提高了代码的复用性,提高程序开发的效率(就是封装一段代码,将来可以重复使用

2.函数的定义

第一种创建函数的方式:
 function 函数名(参数1,参数2...){ 
    函数体; 
    } 

第二种创建函数的方式:
  var fn=function(参数1,参数2...){ 
        函数体; 
        }; 


第三种创建函数的方式:
 var fn=new Function('a','b','alert(a*b)');

注意:
函数声明的时候,函数体并不会执行,当函数被调用的时候才会执行。

3.函数的命名

函数的命名需遵循的规则:

函数命名遵循标识符命名的规则
标识符:变量、函数、属性的名字,或者函数的参数名
   a、以$、下划线或字母开头
   b、其余位是字母、下划线和数字和$
   c、不能是js关键字和保留字
   d、严格区分大小写

驼峰命名法

首字母小写,后面单词的首字母需要大写。例如:userName、userPassword

4.函数的调用

调用函数的语法:

函数名();

调用函数的位置:

1. 在script标签里面  函数名(参数)     
2. 在html标签里通过事件调用,例如 onclick = '函数名(参数)'

注意:
函数体只有在调用的时候才会执行,调用需要()进行调用。 可以调用多次(重复使用)
代码示例:

// 声明函数

function sayHi() {
console.log("吃了没?");
}
 // 调用函数 
sayHi();


// 求1-100之间所有数的和
 function getSum() {
var sum = 0;
for (var  i = 0; i < 100; i++) {
sum += i;  
}  
console.log(sum); 
}
 // 调用
getSum();

1)形式参数(形参)
形式参数:在声明一个函数的时候,为了函数的功能更加灵活,有些值是固定不了的,对于这些固定不 了的值。我们可以给函数设置参数。这个参数没有具体的值,仅仅起到一个占位置的作用,我们通常称 之为形式参数,也叫形参。
2)真实参数(实参)
实际参数:如果函数在声明时,设置了形参,那么在函数调用的时候就需要传入对应的参数,我们把传 入的参数叫做实际参数,也叫实参。

function fn(a, b) {//a和b是形参
  console.log(a + b);
  }
   var x = 5, y = 6;
    fn(x,y); //x和y是实参
     //x,y实参,有具体的值。函数执行的时候会把x,y复制一份给函数内部的a和b,函数内部的值是复制的新 值,无法修改外部的x,y

总结:形参就是函数定义时候用的,实参是在函数调用时候用的。
3) arguments(只在函数里面有效)

JavaScript中,arguments对象是比较特别的一个对象,实际上是当前函数的一个内置属性。也就是说所有 函数都内置了一个arguments对象,arguments对象中存储了传递的所有的实参。arguments是一个伪数 组,因此及可以进行遍历

6.函数返回值(return)

当函数执行完的时候,并不是所有时候都要把结果打印。我们期望函数给我一些反馈(比如计算的结果返回进 行后续的运算),这个时候可以让函数返回一些东西。也就是返回值。函数通过return返回一个返回值

返回值语法:

//声明一个带返回值的函数
 function 函数名(形参1, 形参2, 形参...){
   //函数体
 return 返回值; 
 }
//可以通过变量来接收这个返回值 
var 变量 = 函数名(实参1, 实参2, 实参3);

7.变量的作用域

在JS当中一个变量的作用域(scope)是程序中定义这个变量的区域。
变量分为两类:全局变量的和局部变量。

其中全局变量的作用域是全局性的,即在JavaScript代码中,它处处都可以使用。而在函数之内声明的变 量,就只在函数体内部可以使用。它们是局部变量,作用域是局部性的。

变量的作用域:变量的作用范围
全局变量:全局变量就是定义在函数外部的变量,在当前文件内有效
局部变量:局部变量就是定义在函数内部的变量,这个变量只能在函数内部使用

8.声明提升

变量提升 
定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升。 

函数提升
 JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值