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指向谁;
JS函数入门的更多相关文章
- JavaScript入门:006—JS函数的定义
JS函数的声明. 声明函数的格式例如以下: function 函数名(參数列表){ //函数语句: return 返回值; } 来看详细的函数声明.1.普通函数 <script type=&qu ...
- Node.js快速入门
Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...
- Node.js开发入门—HelloWorld再分析
在Node.js开发入门(1)我们用http模块实现了一个简单的HelloWorld站点,这次我们再来细致分析下代码.了解很多其它的细节. 先看看http版本号的HelloWorld代码: 代码就是这 ...
- Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二)
Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二) 前言 上篇文章对Vue.js有了初步理解,接下来我们把Vue.js基础语法快速的过一遍,先混个脸熟留个印象就 ...
- 如何编写高质量的 JS 函数(4) --函数式编程[实战篇]
本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ZoXYbjuezOWgNyJKmSQmTw作者:杨昆 [编写高质量函数系列],往期精彩内容: ...
- JS解密入门——有道翻译
JS解密入门——有道翻译 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这 ...
- Node.js核心入门
前言: 因为以前学习Node.js并没有真正意义上的去学习它,而是粗略的学习了npm的常用命令和Node.js一些模块化的语法,因此昨天花了一天的时间看了<Node.js开发指南>一书.通 ...
- 【JavaScript】JS从入门到深入(复习查漏向
[JavaScript]JS从入门到深入(复习查漏向 pre 精细得学过一遍JS后才发现,原来之前CTF中有些nodejs的题目以及一些游戏题的payload就变得很好理解了. 基础知识 ECMASc ...
- JS快速入门(二)
目录 JS快速入门(二) 结构图 BOM window对象 open() window子对象 location对象 history对象(了解) navigator 对象 screen对象 BOM 定时 ...
随机推荐
- feedparser的安装
Python中常常要利用RSS下载文本.由于这个Python开源软件嘛,碎片化特别严重.反正是各种边边角角的小问题.网上找来找去找半天都没解决如何安装.我的是win7的.python 是3.4版本的. ...
- 模板引擎Dot
Dot.js 很轻,处理速度也快,作为将json数据赋值到html页面的最好帮手. html5新引入的<template></template>就不用原先的<script ...
- 如何使用navicat远程连接服务器上的oracle数据库
- RESTFUL 设计风格
RESTFUL 规范总结: Rest是web服务的一种架构风格;使用HTTP,URI,XML,JSON,HTML等广泛流行的标准和协议;轻量级,跨平台,跨语言的架构设计;它是一种设计风格,不是一种标 ...
- Review CSS Selectors
Throughout this lesson, you learned how to select HTML elements with CSS and apply styles to them. L ...
- 简洁的实现ls-l命令
现在我们来简洁的实现命令:了解一下相关知识: 我们使用掩码可以很明确的得出文件的每一种信息.关于掩码,上图中的S_IRUSR等均为掩码.我们来看看函数getpwuid,原型:struct passwd ...
- 剑指offer例题——旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...
- mysql 授权命令
MySQL 数据库赋予用户权限操作表 MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库 ...
- [Nginx]实战Nginx:Nginx服务器的安装与配置
----------------------------------------------------------------------------------------------- Ngin ...
- SSM商城项目(一)
1. 学习计划 1.电商行业的背景. 2.宜立方商城介绍 3.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 4.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomc ...