🍖JS函数

一.函数定义

  • 用来封装你的重复性代码
  • 在 Python 中定义函数使用 def 很关键字
  • 在 js 中使用 function 定义函数
// 语法 
function [函数名](形参1,形参2,形参3...){
    [函数体代码];
}
  • 无参函数
// 定义无参函数
function func1(){
    alert("Hello world");
}

// 调用
func1();  // "Hello world"
  • 有参函数
// 定义有参函数
function func2(name,age){
    alert(name+"年芳"+age);
}

// 调用
func2("小女子",28);  // "小女子年芳28"
func2(1,2,3,4)  // "1年芳2" (参数过多不要紧,只会取出相应的数据)
func2(1)  // "1年芳undefined" (参数少了也不要紧,会以 undefined 填充)

二.函数参数

  • 参数一般五个以下
  • 函数内引用的参数大于传入的参数会以 "undefined" 替代
  • 函数内引用的参数小于传入的参数, 那么只会取出相应的参数
function cook(isBad,a,b,c){ // isbad形式参数
	if (isBad){
        alert('做饭');
		
	}else{
        alert('点一个外卖');
	}
}
var bad = false;  //刀坏了
cook(bad);  // 点一个外卖
  • arguments 参数

能够获取到函数接受到的所有的参数

function alls(a,b,c,d){
    console.log(arguments);
}
alls(1,2,3)  // [1,2,3]

三.函数返回值与函数表达式

  • 可以声明变量来接收函数返回值
//  加法
function addition(a,b){
	return a+b;
}
// 减法
function subtraction(a,b){
	return a-b;
}

// 乘法
function multiplication(a,b){
	return a*b;
}

// 除法
function division(a,b){
	return a/b;
}

// 调用
var r = addition(4,6);         // 10
var r1 = subtraction(4,6);     // -2
var r2 = multiplication(4,6);  // 24
var r3 = division(4,6);        // 0.666666666666
  • 函数表达式
var division = function(a,b){
	return a/b;
}
// 调用
division(10,2)  // 5

四.全局变量与局部变量

  • 函数外部的属于全局,函数内部的属于局部,只能在函数里面调用, 函数运行完毕, 局部变量就会被删除
  • 在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它
var a = 1;
console.log(a);  // 1
function add(){
	var b = 2;
	console.log(b);  // 2
}
add();

//无法调用,b只是局部
console.log(b);  // 报错

五.匿名函数

  • 没有名字的函数
  • 函数可以被赋值, 但对于一个匿名函数来说赋予名字没有意义
  • 匿名函数一般与 map( ) 之类的函数组合使用
function(){
    console.log("xxx");
}

六.作用域

  • 首先在函数内部查找变量,找不到则到外层函数查找,逐步找到最外层。另外函数的作用域关系是在定义阶段就固定死的,与调用位置无关

七.变量提升

  • 所有的声明都会提升到作用域的最顶上去
  • 同一个变量只会声明一次, 其他的被忽略掉
  • 函数的声明优先级高于变量声明的优先级, 并且函数声明和函数定义的部分一起被提升
posted @ 2021-03-11 22:39  给你骨质唱疏松  阅读(93)  评论(0编辑  收藏  举报