zoukankan      html  css  js  c++  java
  • 从零开始学JavaScript(一)- 理解函数

    楔子

    老姚写这篇笔记开头就说:学JS,不懂事件机制,基本可以说学了JS,就是白学。

    看到这句话时的我十分汗颜,如果说,我了解事件机制的话,我也许就不会点开这篇笔记,而现在的我就是那个白学了的。

    重新开始审视自己,从事WEB前端开发这份工作已经半年有余,从来没有认认真真的写过一篇技术性的笔记。或许我还不是一个合格前端开发工程师,空有一腔热情却难以施展。以此作为第一篇笔记,勉励自己。

    关于这篇笔记并不打算写对于事件机制的理解,毕竟我还是个白学了JS的人,班门弄斧简直是跳梁小丑。那就从最基础的开始写起。(zhouAlex066)

    函数(function)

    根据W3School的解释,函数是由事件驱动的,或者当它被调用时执行的可重复使用的代码块。

    举个简单点的例子:alert();它是由JavaScript封装的一个可重复使用的函数。

    既然提到alert()警示窗,那么还有confirm()确认窗,以及prompt()可输入对话窗。

    alert()是初学JavaScript时调试代码用到最多的函数,后来偶遇了console.log()/console.dir,使用到alert()的次数才逐渐减少,当然,调试代码并不是只有这两种方式,而这篇笔记的主要内容也不是讲JavaScript的调试,网上也有很多很好调试笔记,我就不再赘述了(附:阮一峰<Firebug控制台详解>)。

    confirm()是用于显示一个带有指定消息和确定及取消按钮的对话框。点击按钮返回一对布尔值(Boolean),如果用户点击确定按钮,则 confirm() 返回 true。如果点击取消按钮,则 confirm() 返回 false。

    prompt()是用于显示可提示用户进行输入的对话框。如果用户单击提示框的取消按钮,则返回 null。如果用户单击确认按钮,则返回输入字段当前显示的文本。

    函数的声明方式:关键字 function 函数名(一组参数){置于括号中的待执行代码};

    调用函数名时,会执行{置于括号中的待执行代码};由此牵引出“函数是由事件驱动的,或者当它被调用时执行的可重复使用的代码块。”

    提示:JavaScript 对大小写敏感。关键词 function 必须是小写的,并且必须以与函数名称相同的大小写来调用函数。

    在调用函数时,可以向函数传递值,这些值被称为参数。参数可以是多个,用逗号隔开。这些参数可以在函数中使用。参数还分形参与实参,这些将在实际举例中出现。

    有时,我们会希望函数将值返回调用它的地方。通过使用 return 语句就可以实现。在使用 return 语句时,函数会停止执行,并返回指定的值。

    W3School例:

    function myFunction(){

      var x=5;

      return x;

    }

    var myVar=myFunction();

    myVar 变量的值是 5,也就是函数 "myFunction()" 所返回的值。

    我所知道的函数构造语法有三种:(部分摘自新浪博客)

    function functionName(arg0, arg1, ... argN) { statements }//function语句 

    var function_name = new Function(arg1, arg2, ..., argN,function_body);//构造函数,令写篇幅详细说明

    var function = function(arg0, arg1, ... argN) { statements };

    函数直接量是一个表达式,它可以定义匿名函数。函数直接量的语法和function语句非常相似,只不过它被用作表达式,而不是用作语句,而且也无需指定函数名

    如果函数无明确的返回值,或调用了没有参数的 return 语句,那么它真正返回的值是 undefined。

    ECMAScript中的函数不能重载 。可用相同的名字在同一个作用域中定义两个函数,而不会引发错误,但真正使用的是后一个函数。考虑下面的例子:

    function doAdd(iNum) {

    Alert(iNum + 100);   

    }

    function doAdd(iNum) {

    Alert(iNum + 10);   

    }   

    doAdd(10);//20

    不过可以使用arguments对象避开这种限制(关于对arguments的讨论,将在另一篇笔记中记录)。

    去年刚接触JavaScript的时候,对于自定义函数很难理解,脑袋里装着十万个为什么但终究还是弄得个一知半解。

    翻了翻当时写的笔记,第一次对自定义函数的定义是:自己封装的一定功能函数,供自己使用,原来我们熟知的alert()是JS的内置函数。(前篇提及过)

    第一遍没有理解,于是我又用通俗的话写了第二次理解:自己定义一个可以重复使用的命令(行为)。笔记的旁边还有一排小字,函数即是命令,也称之为功能,方法。对于这个理解,我也不知道是对还是错。

    当需要在函数调用的时候,传递真实的参数,称之为实参,去替换函数表达式中的自定义参数,也就是形参。

    形参用于触发多事件源时,多事件源是指的相同条件下,不同名的事件源;(涉及到事件部分,另开篇幅详细介绍)

  • 相关阅读:
    A Node Influence Based Label Propagation Algorithm for Community detection in networks 文章算法实现的疑问
    Fast Newman-FN算法以及模块度定义介绍
    Label Propagation Algorithm LPA 标签传播算法解析及matlab代码实现
    设计一个smartnic
    Intel GEN11 GPU
    Intel GEN9 GPU
    Shared Virtual Memory (SVM) Functions
    connect via ssh to virtualbox guest vm without knowing ip address
    smartnic
    技术精品翻译
  • 原文地址:https://www.cnblogs.com/zero-Alex/p/5158423.html
Copyright © 2011-2022 走看看