一.

函数的声明及调用
* 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函数入门的更多相关文章

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

    JS函数的声明. 声明函数的格式例如以下: function 函数名(參数列表){ //函数语句: return 返回值; } 来看详细的函数声明.1.普通函数 <script type=&qu ...

  2. Node.js快速入门

    Node.js是什么? Node.js是建立在谷歌Chrome的JavaScript引擎(V8引擎)的Web应用程序框架. 它的最新版本是:v0.12.7(在编写本教程时的版本).Node.js在官方 ...

  3. Node.js开发入门—HelloWorld再分析

    在Node.js开发入门(1)我们用http模块实现了一个简单的HelloWorld站点,这次我们再来细致分析下代码.了解很多其它的细节. 先看看http版本号的HelloWorld代码: 代码就是这 ...

  4. Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二)

    Vue.js+vue-element搭建属于自己的后台管理模板:Vue.js快速入门(二) 前言 上篇文章对Vue.js有了初步理解,接下来我们把Vue.js基础语法快速的过一遍,先混个脸熟留个印象就 ...

  5. 如何编写高质量的 JS 函数(4) --函数式编程[实战篇]

    本文首发于 vivo互联网技术 微信公众号 链接:https://mp.weixin.qq.com/s/ZoXYbjuezOWgNyJKmSQmTw作者:杨昆 [编写高质量函数系列],往期精彩内容: ...

  6. JS解密入门——有道翻译

    JS解密入门——有道翻译 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这 ...

  7. Node.js核心入门

    前言: 因为以前学习Node.js并没有真正意义上的去学习它,而是粗略的学习了npm的常用命令和Node.js一些模块化的语法,因此昨天花了一天的时间看了<Node.js开发指南>一书.通 ...

  8. 【JavaScript】JS从入门到深入(复习查漏向

    [JavaScript]JS从入门到深入(复习查漏向 pre 精细得学过一遍JS后才发现,原来之前CTF中有些nodejs的题目以及一些游戏题的payload就变得很好理解了. 基础知识 ECMASc ...

  9. JS快速入门(二)

    目录 JS快速入门(二) 结构图 BOM window对象 open() window子对象 location对象 history对象(了解) navigator 对象 screen对象 BOM 定时 ...

随机推荐

  1. [记录] Linux Apache隐藏index.php

    1. 在项目更目录下新建 .htaccess <IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEng ...

  2. <基础> PHP 进阶之 类型转换

    引用官方的解释 PHP 在变量定义中不需要(或不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的.也就是说,如果把一个 string 值赋给变量$var,$var 就成了一个 strin ...

  3. 利用STM32CubeMX来生成USB_HID_Mouse工程

    硬件开发板:STM32F103C8 软件平台 好了现在开始利用STM32CubeMX来生成我们的工程 1.新建工程 选择MCU的型号 选择选择时钟 开启usb的模块 选择USB的类 配置时钟树(主要是 ...

  4. Activity工作流学习(二)--Activity数据库

    23张表 ACT_RE_资源库流程规划表 act_re_deployment 部署信息表 act_re_model 流程设计模型部署表 act_re_procdef 流程定义数据表 ACT_RU_运行 ...

  5. 机器学习进阶-人脸关键点检测 1.dlib.get_frontal_face_detector(构建人脸框位置检测器) 2.dlib.shape_predictor(绘制人脸关键点检测器) 3.cv2.convexHull(获得凸包位置信息)

    1.dlib.get_frontal_face_detector()  # 获得人脸框位置的检测器, detector(gray, 1) gray表示灰度图, 2.dlib.shape_predict ...

  6. APP-11-视觉技术-通用文字识别

    1.Postman测试 2.参数 https://cloud.baidu.com/doc/OCR/OCR-API.html#.EC.DF.48.27.9B.69.A4.2C.54.1B.DC.95.6 ...

  7. Java学习路线(转)

    原文:http://www.hollischuang.com/archives/489 一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http ...

  8. 尚硅谷springboot学习21-web开发-处理静态资源

    SpringBoot对静态资源的映射规则 @ConfigurationProperties(prefix = "spring.resources", ignoreUnknownFi ...

  9. web前端安全的三个关键点

    一.浏览器的同源策略 同源策略:不同域的客户端脚本在未经授权的情况下不能读写对方的资源. 这里有几个关键词:域.脚本.授权.读写.资源 1.同域要求两个站点:同协议.同域名.同端口.下表展示了所列站点 ...

  10. Visual Studio配置C/C++-PostgreSQL(9.6.3)开发环境(ZT)

    https://www.2cto.com/database/201707/658910.html 开发环境 Visual Studio 2017[15.2(26430.16)] PostgreSQL ...