js函数(入门)

函数基础

1.函数重复调用,可以传递不同得参数到函数内部,函数重复调用时与之前调用的函数毫无关系

2.函数返回值,通过return实现;

return 返回值||(或)返回结果;

问:返回的结果返回到了哪里? 返回函数名调用的位置 函数名()

3.通过return 可以将函数内部的值返回到函数外部

4.return 会打断程序进行,跳出函数内部执行代码:=>(之后)就不再执行往下的代码;

5.没有设置return 默认返回undefined

  <script>
    //  let a = 10;
    //     let c = 100;
    //     let e = 50;

    //     function  add(q,q1) {
    //         let s = q + q1
    //         // 110 150 还要拿它 乘以 10
    //         return q + q1;
    //     }
    //    let x=add(a,c)//函数名调用位置
    //    console.log(x,"第一");
    //    let xx=add(c,e)
    //    console.log(xx,"第二");
    //    console.log("......")
       
       function qaq(q,q1) {
           console.log(2);
           return q+q1;//此处说明return的跳出功能
           let s=10;
           console.log(1);
        //    return q+q1;
           
       }
       qaq(1,2)
    </script>

2.argument函数(本人这里理解不够)

1.函数arguments 接收所有的实参数据,本质是一个数组(类数组),

2.箭头表达式()=>{}

箭头函数是函数的简写

箭头函数没有arguments 通过...代替

...变量名 需要在接收未知的最后面,作用:接收所有剩余的实参数据

3.简写

花括号去掉就相当于只有一句return 的语法

箭头函数一句语法,简化为

let result=(a,b)=> a+b;

console.log(add(1,2),"箭头函数");

    <script>
    //  let arr=["小冯", "iu", "lisa", "美女","1213"]
    //  function add(a,b){
    //      console.log(arguments[0],a,b);
    //      console.log(arguments[1]);
    //      console.log(arguments[2]);
    //      console.log(arguments[3]);
    //  }
    //  add("小冯", "iu", "lisa", "美女","1213")
     //箭头函数
     
     let ss =(qwe,...p)=>{
         console.log(qwe,q);
     }
     ss(1,2,2,3);

     //简化
     function add(a,b){
         let s=10;
         return a+b;
     }
     console.log(add(1,2),"函数声明函数");
     //花括号去掉就相当于只有一句的return的语法
     //箭头函数一句语法,简化为
     let result =(q,w)=> q+w;
     console.log(add(1,2),"箭头函数");
     let obj={
         name:"小冯",
         remove:function(){
             console.log(1);
         }
     }
     obj.remove()
     //对象函数简写
     let obj1={
         name:"小冯",
         remove(){
             console.log("简写函数对象");
         },
         remove1:()=>{
             console.log("箭头函数");
         },
     }
     console.log(obj1.remove1());



    </script>

3.window 浏览器最大对象

函数内部定义的变量 外部是无法使用的,函数内部可以使用外部变量(抽象:比如集合包含)

作用域:只能在指定的区域内使用;

1.script是一个全局作用域;在这个作用域下的变量,函数在script标签内的任意位置都可以使用

a.页面打开时创建变量||函数,页面关闭时销毁

b.页面有一个全局变量对象:window,然后函数,变量最终挂截到window上

2.函数局部作用域;=>每个函数都有一个局部作用域{};局部变量&&函数,只能在自己内部使用,

可以套娃(也许是封装)

a.挂载在函数上?

3.块级作用域:ES6新增{let const 声明变量之后,这个{}就会变成块级作用域}

与函数局部作用域一致

 <script>
        // let asd = 10
        // function  add(q,q1) {
        //     // 函数生存圈
        //     function a() {
        //         console.log("a函数执行");
        //         function c() {
        //             console.log("c",asd);
        //         }
        //         c()
        //     }
        //     a()
        //     console.log("add函数执行");
        // };
        // add()
        

        // let a = 10;
        // function  aaaa() {
        //     console.log(window);
        // };
        // aaaa()

       
        {
            let a = 10;
        }

        for (let index = 0; index < 2; index++) {
            let aa = 10;
        }
        console.log(aa);

    </script>

4.作用域

1.let const function 名称不要重复

2.若重复定义函数名,则执行重复函数名最后一个

3.从上往下执行

4.同一(作用域)只能声明一个相同的变量名,

5.作用域变量查找规则:自己有用自己的,自己没有往上找,以此类推类型知道找到window为止,window没有那就报错

 <script>
        // let a = 1; // 全局作用域
        // function cc() {
        //     // 局部作用域
        //     let a = 10            
        //     console.log(a,"cc函数");    // 
        //     function aa(){
        //         console.log(a,"aa函数");  //                
        //     }
        //     aa()
        // }
        // cc()
        // console.log(a,"全局");



        // let a = 10;

        // function cc() {
        //    let a = 123;
        //    return 100
        // }
        // console.log(a,"全局1");  // 10 
        // a = cc()
        // console.log(a,"全局2");  // 100

        
        /*
        go 全局 待补充
            a:  2
            f1:()=>{}
            f2:()=>{}
            f3:()=>{}
        
        */


        let a = 1
        let f1 = function () {
            console.log(a)   // 1
        }

        let f2 = function () {
            let a = 2
            console.log(a)  // 2
            f1()
        }
        let f3 = function (a) {
            console.log(a)  // 3
            a = 3
            console.log(a)  // 4 
        }
        a = 2
        f1()
        f3(4)



        // 2  4 3 


    </script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白村第一深情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值