JS函数入门

一.

函数的声明及调用
* 1函数的格式:function 函数名(参数1,参数2......){
* //函数体
* return 结果;
*
* }
* 函数调用的格式:
* 直接调用:函数名(参数1的值,参数2的值......);
* 事件调用:事件名="函数名()";

* 2,函数声明的几点强调:
* ①函数名的声明,必须符合小驼峰法则(首字母小写,之后每个单词首字母大写);
* ②参数列表,可以有参数也可以没有参数,分别称为有参函数,无参函数;
* ③声明函数时的参数列表,称为"形参列表"(变量的名);
* 调用函数时的参数列表,称为"实参列表"(变量的值);
* 函数中,实际有效的参数取决于参数的赋值,未被赋值的形参,将为Undeined;
* ④函数如果需要返回值,可用return返回结果;
* 调用函数时,使用var 变量名=函数名();的方式,接收返回结果;
* 如果函数没有返回值,则接受的结果为undefined;
* ⑤函数中变量的作用域:
* 在函数中,使用var声明变量,默认为函数局部变量,只在函数内能用;
* 不用var声明默认全局变量(函数中的全局变量必须在函数调用后才能使用)。
* 函数的形参列表,为函数局部变量,只在函数内部能调用;
* ⑥函数声明与函数调用没有先后之分。即,调用可以写在声明之前。
* consle.log(num);
* var num=10;
* 上述代码执行顺序:
* JS中代码执行,会先进行检查,装载,即声明变量,函数等操作;
* 然后再进入执行阶段,(变量的赋值属于执行阶段)
* 所以,函数的声明属于检查装载结案,函数的调用属于执行阶段。so,函数调用语句写在函数声明之前没关系.
* 所以上述代码执行流入
* 声明阶段
* var num;//声明变量
* function funcN()//声明函数
* 执行阶段
*
* console.log(num);
* num=10
* funcN()执行函数的{} 中的代码。
*

二.

匿名函数的声明及调用
* 1声明一个匿名函数,直接赋给某个事件;
* window.onload=function(){}
* 2使用函数表达式声明匿名函数;
* 声明函数表达式:var func=function(){}
* 调用函数表达式:func();
* 使用匿名函数表达式,则调用语句,必须在声明语句之后,否则报错(对比常规函数声明与调用区别)
* 3使用自执行函数,声明并直接调用匿名函数:
* !function(参数1){}(参数1的值);//使用任意运算符开头,一般用!
* (function(){}())//使用()将匿名函数及之后的括号包裹
* (function(){})()//使用()只包裹匿名函数表达式
*
*
* 三种写法的特点:
* ①结构清晰,开头加!结尾加()不容易错乱,推荐使用;
* ②可以表明匿名函数与之后的()为一个整体,推荐使用;
* ③无法表明函数与之后()为一个整体,不推荐使用。
*三.

函数内部的属性
* Arguments对象
* 1作用:用于保存调用函数时,所赋值的实参列表。
* 当我们调用函数,并使用实参赋值时,实际上参数已经保存到arguments数组中,即使没有形参,也可以使用arguments[n]的形式调用参数;
* 2arguments数组的个数,取决于实参列表,与形参无关(从0开始)
* 但,当第N个位置的形参,实参,arguents都存在时,形参与arguments是同步的。(即在函数中修改一个的值另一个会同步变化)
* 3.arguments.callee是arguments的重要属性,用于返回arguments所在函数的引用;
* arguments.callee()可以调用自身函数执行;
* 在函数内部调用函数自身的写法,被称为递归,所以arguments.callee()是递归调用时常用的方式:
* this:
* 指向函数调用语句所在作用域即谁调用函数this指向谁;

时间: 2024-11-14 10:08:07

JS函数入门的相关文章

JavaScript入门:006—JS函数的定义

JS函数的声明.声明函数的格式如下: function 函数名(参数列表){ //函数语句: return 返回值; } 来看具体的函数声明.1.普通函数 <script type="text/javascript"> function ShowHint() { alert("普通函数"); } </script> 2.带参数的函数 <script type="text/javascript"> functio

Node.js开发入门—使用对话框ngDialog

做网站经常会遇到弹出对话框获取用户输入或弹出对话框让用户确认某个操作之类的情景,有一个基于AngularJS的扩展模块可以帮我们优雅地完成这类事情:ngDialog. ngDialog在github上提供了一个示例网页,演示了它的各种用法,在这里:https://github.com/likeastore/ngDialog/blob/master/example/index.html.ngDialog的github主页的readme也对常用的指令和服务做了较为详细的介绍,可以参考.我这篇就纯粹是

Node.js开发入门—Stream用法详解

Stream是Node.js中非常重要的一个模块,应用广泛.一个流是一个具备了可读.可写或既可读又可写能力的接口,通过这些接口,我们可以和磁盘文件.套接字.HTTP请求来交互,实现数据从一个地方流动到另一个地方的功能. 所有的流都实现了EventEmitter的接口,具备事件能力,通过发射事件来反馈流的状态.比如有错误发生时会发射"error"事件,有数据可被读取时发射"data"事件.这样我们就可以注册监听器来处理某个事件,达到我们的目的. Node.js定义了R

Node.js开发入门—Angular简单示例

在"使用AngularJS"中,我们提到了如何在Node.js项目中引入AngularJS,这次提供一个非常简单的示例,演示AngularJS里的指令.数据绑定.服务等内容. 我准备做Web后台管理系统,不同的管理员会有不同的权限,管理员登录后看到的菜单和他的权限有关,能看到什么,是动态生成的(类似RBAC).本文的示例从这个项目而来,当然,现在还是最简单的. 如果没有特别说明,后面我们用到的示例都使用express generator生成. Angular小demo 先搞起来吧. 第

Node.js开发入门—UDP编程

Node.js也提供了UDP编程的能力,相关类库在"dgram"模块里. 与TCP不同,UDP是无连接的,不保障数据的可靠性,不过它的编程更为简单,有时候我们也需要它.比如做APP的统计或者日志或者流媒体,很多流媒体协议都会用到UDP,网上一搜一大堆. 使用UDP,如果你要发送数据,只需要知道对方的主机名(地址)和端口号,扔一消息过去即可.至于对方收不收得到,听天由命了.这就是数据报服务,类似快递或邮件. 我们这次来介绍一下Node.js里的UDP编程,我会提供一个UDP版本的echo

Node.js开发入门—套接字(socket)编程

Node.js的net模块提供了socket编程接口,方便我们利用较为底层的套接字接口来实现应用协议.这次我们看一个简单的回显服务器示例,包括服务端和客户端的代码. 使用JavaScript也可以进行套接字编程,哈哈,这酸爽! 代码 分服务器和客户端两部分来说吧. echoServer代码分析 echoServer.js: var net = require("net"); // server is an instance of net.Server // sock is an ins

Node.js开发入门——MongoDB与Mongoose

为了保存网站的用户数据和业务数据,通常需要一个数据库.MongoDB和Node.js特别般配,因为MongoDB是基于文档的非关系型数据库,文档是按BSON(JSON的轻量化二进制格式)存储的,增删改查等管理数据库的命令和JavaScript语法很像.如果你在Node.js里访问MongoDB的数据,会有我们是一家人的感觉,特别亲切. 我也准备使用MongoDB来作为我的数据库. MongoDB使用集合(collection)和文档(document)来描述和存储数据,collection就相当

Three.js快速入门

引言 本文主要是讲解Three.js的相关概念,帮助读者对Three.js以及相关知识形成比较完整的理解. 近年来web得到了快速的发展.随着HTML5的普及,网页的表现能力越来越强大.网页上已经可以做出很多复杂的动画,精美的效果. 但是,人总是贪的.那么,在此之上还能做什么呢?其中一种就是通过WebGL在网页中绘制高性能的3D图形. OpenGL,WebGL到Three.js OpenGL大概许多人都有所耳闻,它是最常用的跨平台图形库. WebGL是基于OpenGL设计的面向web的图形标准,

Node.js开发入门—Express安装与使用

之前我们在安装完Node.js后直接写了个HelloWorld网站,这次呢,我们使用Node.js的Web框架Express来重写一下HelloWorld,看看有什么不同.同时我们还会重写之前的文件服务器,功能更完善而代码更简洁. 安装 express 为了重写我们的HelloWorld,我们需要安装Express模块.Express基于Node.js的一个Web框架,官方网站在这里:http://expressjs.com/.官网对Express的介绍是: Fast, unopinionate