JS学习笔记1

1.函数function
声明:function 函数名(参数){}
2.局部变量,外部变量
函数可以访问外部变量,也可以修改外部变量

    <script>
        let username='John';
        function showMessages()
        {
            username='mark';
            alert('hello'+username);
           
        }
        alert(username);
        showMessages();     
    </script>

只有在没有局部变量的情况下才会使用外部变量
如果内部函数与外部声明同名的变量,会采用内部变量。

三:函数参数
function 函数名(参数1,参数2,参数3,…)
(区别于c语言,不需要设置参数的类型,调用参数的时候也不同。)

  <script>
        function showMessage(font,text)
        {
            alert(font+':'+text);
        } 

        showMessage('Ann','hello');
    </script>

做区分

<script>
        //注意遇上所说的函数内对全局变量做修改,做对比
        function showMessage(font,text)
        {
            font='*'+font;
            alert(font);
        } 
        let font='Ann';
        showMessage('Ann','hello');//输出*Ann
        alert(font);//不会被修改,还是ANN
        //函数修改一个局部的副本
    </script>

参数可以设置默认值,也就是调用函数时传入参数小于函数定义内的参数,会被自动定义为undefined,但是可以设置参数的默认值
function(参数=‘not give’)
参数的默认值也可以是其余函数

   <script>
       function showMessage(font)
       {
           alert(font||'empty');//认为0为空值
           alert(font??'empty');//可以识别0为数字
       }
       showMessage(0);
   </script>

四:返回值

   <script>
       function showMessage(a,b)
       {
           return a+b;
           
       }
       alert(showMessage(1,2));
   </script>

返回return 后什么都不接也是可以的 ,退出函数。
函数内部没有任何操作,直接加一个return,等同于undefined
return后面的式子过多,不能够换行处理,return单独一样会自动加上分号,要采取下面括号包围案例
return (
some + long + expression

  • or +
    whatever * f(a) + f(b)
    )

五:函数表达式
上述之中的创建函数的方式都是函数声明,还有一种创建函数的方式是函数表达式。
通常会写成:let sayHi = function() { alert( “Hello” ); };
末尾含有分号
与函数声明的区别在于,函数表达式是运行到相关代码之时才建立的,但是函数声明是在运行之前就已经建立的。

1.alert( sayHi ); // 显示函数代码
结果是
在这里插入图片描述

这行代码并不会运行函数,因为 sayHi 后没有括号。
在 JavaScript 中,函数是一个值,所以我们可以把它当成值对待。上面代码显示了一段字符串值,即函数的源码。的确,在某种意义上说一个函数是一个特殊值,我们可以像 sayHi() 这样调用它。但它依然是一个值,所以我们可以像使用其他类型的值一样使用它。复制如下:

<script>
       function showMessage(a,b)
       {
           alert('say hello!'); 
       }
       let fun=showMessage;
       fun();   
   </script>

请注意:showMessage后面没有括号。如果有括号,func = showMessage()会把 showMessage 的调用结果写进func,而不是 showMessage 函数 本身。

六:回调函数

   <script>
        function ask(question, yes, no) {
        if (confirm(question)) yes()
        else no();
        }//confirm 弹出含有qustion窗口,鼠标点击“确定”进入yes()对应的函数,如果是“取消”则就对应no()对应函数

        function showOk() {
        alert( "You agreed." );
        }

        function showCancel() {
        alert( "You canceled the execution." );
        }

        // 用法:函数 showOk 和 showCancel 被作为参数传入到 ask
        //传入的时候不能带括号
         ask("Do you agree?", showOk, showCancel);
        
   </script>

七:匿名函数
函数内部定义如下的没有名词的函数,成为匿名函数,函数外部无法访问这些函数
function() { alert(“You agreed.”); },
function() { alert(“You canceled the execution.”); }

八:箭头函数
格式如:let func = (arg1, arg2, …argN) => expression
也就是说,传入参数arg1…这些进行箭头后expression的操作

   <script>
        let sum=(a,b)=>a+b;//注意是等号
        alert(sum(1,2));
   </script>

let double = n => n * 2;
// 差不多等同于:let double = function(n) { return n * 2 }
2.
如果没有参数,括号将是空的(但括号应该保留):
let sayHi = () => alert(“Hello!”);
sayHi();
3.
let age = prompt(“What is your age?”, 18);
let welcome = (age < 18) ?
() => alert(‘Hello’) :
() => alert(“Greetings!”);

welcome();

还有多行箭头的操作具体访问:js学习

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值