03 - JavaScript(函数,实参,形参,)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xyyojl/article/details/82779292

函数/实参/形参

函数的分类

  • 匿名函数: 没有名字的函数 匿名函数不能独立存在
  • 有名/具名函数: 有名字的函数

匿名函数的使用例子,通过事件触发

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <script>
        document.onclick = function(){
            console.log("这是一个依赖于document点击事件的函数");
        }
    </script>
</body>
</html>

有名函数的例子,下面的代码就把上面的一些代码省略,直接写js代码啦

function fn(){
    console.log("fn函数调用成功");
}
fn();	//打印出fn函数调用成功

有名函数和将函数赋值给一个变量的区别

//直接使用function声明变量 
function fn(){
    console.log("fn有名函数");
}
fn(); //函数执行
//fn是一个变量,代表函数本身
let fn2 = function(){
    console.log("fn2函数调用成功");
}

把函数放到数组里面的例子:

let arr = [function(){
	console.log("arr里的fn");
}]
arr[0](); //打印arr里的fn

把函数放到对象里面的例子:

let obj = {
    a : function(){
    console.log("obj里的a函数");
	}
}
obj.a(); //打印obj里的a函数

###函数声明

//函数声明,直接使用function来声明的,不可以加括号自执行 必须通过函数名()执行
function fn(){
    console.log(1);
}

函数表达式

//函数表达式 可以加括号执行性
 let fn2 = function(){
	console.log("fn2函数");
 }

函数形参/实参

  • 可以根据调用环境的不同 做出不同的反馈

  • 函数的参数的目的就是为了和外部通信

  • 形参个数多于实参的个数,也就是形参没有找到对应的实参接受,那么它就是undfined

  • 形参个数少于实参的个数,也就是做人知足,不要贪心,没有形参接收的话,多出来的就不要啦

function fn(a,b){//形式参数
    console.log("fn执行");
    console.log(a+b);
}
fn(1,2);	//括号里面的参数是实际参数,简称实参
fn(3,5);   	//可以通过传入不同的实参,达到实现不同的效果
fn(6,8);   

b有默认值,当有实参对应的时候,就不会生效

b的默认值什么时候生效?

底层检测默认值生效的机制,是如果b接收到一个undfined的参数,默认值就会生效

没有默认值的,放在前面,有默认值放到后面

function fn(a =1,b){//形式参数
    console.log(a);
}
fn(undfined,2);	//设置默认值
fn(,2);	//会报错

属性要依附在对象下面

function fn(){}
fn.index = 123;
console.log(fn.index);
//访问一个对象不存在的属性,默认是undfined

.操作符 ===> []

let obj = {
    a: 1,
    b: 2
}
//let a = "b";
console.log(obj[a]);
let arr = ["a","b"]
console.log(arr.0);	//报错,因为数字跟小数点结合,会被认为是小数
console.log(arr[0]);
//直接带.,相当于属性,没带.视为变量

每一个对象,系统自带的属性:合法的对象属性
####自定义属性和自定义标签属性

  • 自定义属性 ,人为制定的,寄存在js对象下面叫自定义属性
  • 自定义标签属性,放在标签里面的,不能直接通过点去获取

自定义标签属性的获取

console.log(box.fy);
//自定义标签属性不能直接通过点去访问
//获取自定义标签属性
console.log(box.getAttribute("fy"));
console.log(box.getAttribute("fy","这是一个新的值"));
console.log(box.removeAttribute("fy"));

return

在函数执行结束,默认返回 undfined

函数里只能有一个return 遇到return就停止运行,并且把return后面的值返回出来

function fn(a,b){
    let result = a + b;
    return result;
}
let num = fn(1,2);//函数执行的结果
console.log(num);

可以通过下面的方法,简化书写的代码

function getId(str){
    return document.getElementById(str);
}
let div = getId("box");

小Tips:

  • 不能带括号,因为js里面,一个变量后面有括号,都是函数,函数一旦加() 就是调用(执行函数) 自执行
  • 不能这样写document.onclick = fn(),直接的话,就是函数自执行,不是时间触发的

猜你喜欢

转载自blog.csdn.net/xyyojl/article/details/82779292
今日推荐