【废弃】【WIP】JavaScript 函数
创建: 2017/10/09
更新: 2017/11/03 加上【wip】
废弃: 2019/02/19 重构此篇。原文归入废弃
增加【废弃中】标签与总体任务
结束: 2019/03/12 完成废弃, 删除【废弃中】标签, 添加【废弃】标签
结束: 2019/03/03 完成废弃, 删除【废弃中】标签, 添加【废弃】标签
函数的定义 | |||||||||||||||||||||||||||||||
所有声明不分顺序,自动排序 | |||||||||||||||||||||||||||||||
普通声明 | function test(a) { return a; } 只有这种在定义后在程序任何位置都可以呼出 |
||||||||||||||||||||||||||||||
函数字符来定义 |
var sample = function(a) { 不会被预处理 |
||||||||||||||||||||||||||||||
Object来定义 |
var name = new function("x", "y", ... , 最后一个是处理,前面都是参数 不会被预处理 |
||||||||||||||||||||||||||||||
箭头函数式来定义 |
var sample = x => x*x; 不会被预处理 |
||||||||||||||||||||||||||||||
嵌套函数 | 函数内部的函数
|
||||||||||||||||||||||||||||||
函数的呼出 | |||||||||||||||||||||||||||||||
函数的呼出方法 | function sample() {}
|
||||||||||||||||||||||||||||||
即时函数 (无名函数) |
定义与呼出同时进行
|
||||||||||||||||||||||||||||||
函数的参数 | |||||||||||||||||||||||||||||||
参数的省略 | 省略掉的为undefined undefined是没有赋值 null是赋予的是空值 |
||||||||||||||||||||||||||||||
不固定长度的参数 | 所有函数内部可用arguments
|
||||||||||||||||||||||||||||||
传值和传参 | object参数传送的是参照(指针) | ||||||||||||||||||||||||||||||
递归函数 | |||||||||||||||||||||||||||||||
三种写法 |
|
||||||||||||||||||||||||||||||
程序的编译与运行 | |||||||||||||||||||||||||||||||
生成全局对象 | |||||||||||||||||||||||||||||||
解析程序 | |||||||||||||||||||||||||||||||
运行程序 | |||||||||||||||||||||||||||||||
单线程 | |||||||||||||||||||||||||||||||
call对象及本地变量 | |||||||||||||||||||||||||||||||
this的值 |
被呼出函数所属对象 函数内部函数的this是全局变量 |
||||||||||||||||||||||||||||||
命名空间 |
var a = "a"; |
||||||||||||||||||||||||||||||
垃圾回收 |
释放从全局对象无法到达的量 不用在意 |
||||||||||||||||||||||||||||||
闭包 | |||||||||||||||||||||||||||||||
JavaScript的所有函数都是闭包 闭包内部可以有函数(闭包) |
|||||||||||||||||||||||||||||||
应用 | |||||||||||||||||||||||||||||||
命名空间 | |||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||
用对象管理程序本地代码 |
var myApp = myApp || {}; 所有东西追加成属性 |
||||||||||||||||||||||||||||||
用函数作为命名空间 |
(function () { module模式 // 作为即时函数,把module相关传递给指定参数 |
||||||||||||||||||||||||||||||
作为对象(Object)的函数 | |||||||||||||||||||||||||||||||
函数也是对象 |
● 可以代入变量,对象属性, 数组元素 ● 可以作为函数的参数, 返回值 ● 可以有属性和方法 ● 可以作为不带名字的字符, 即无名函数 function () {} ● 可以动态生成 |
||||||||||||||||||||||||||||||
函数的属性(property) |
|
||||||||||||||||||||||||||||||
添加自定义属性 |
function test() {...} |
||||||||||||||||||||||||||||||
高阶函数 | |||||||||||||||||||||||||||||||
定义 | 以函数为参数或返回值的函数 | ||||||||||||||||||||||||||||||
回调函数 | |||||||||||||||||||||||||||||||
ES6关于函数的扩张 | |||||||||||||||||||||||||||||||
【废弃】【WIP】JavaScript 函数的更多相关文章
- 【JS小技巧】JavaScript 函数用作对象的隐藏问题
用户反馈 @消失的键盘 在论坛反馈了一个问题,在 AppBoxMvc 中的 Title 模型中,如果将 Name 属性改名为小写的 name 属性,就会报错: 因为这是一个 ASP.NET MVC 的 ...
- 【JS小技巧】JavaScript 函数用作对象的隐藏问题(F.ui.name)
用户反馈 @消失的键盘 在论坛反馈了一个问题,在 AppBoxMvc 中的 Title 模型中,如果将 Name 属性改名为小写的 name 属性,就会报错: 因为这是一个 ASP.NET MVC 的 ...
- 专题8:javascript函数详解
函数是一段可以反复调用的代码块.函数还能接受输入的参数,不同的参数会返回不同的值. 函数的声明 JavaScript 有三种声明函数的方法. (1)function 命令 function命令声明的代 ...
- ABP(现代ASP.NET样板开发框架)系列之21、ABP展现层——Javascript函数库
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之21.ABP展现层——Javascript函数库 ABP是“ASP.NET Boilerplate Project ...
- JavaScript权威设计--JavaScript函数(简要学习笔记十一)
1.函数调用的四种方式 第三种:构造函数调用 如果构造函数调用在圆括号内包含一组实参列表,先计算这些实参表达式,然后传入函数内.这和函数调用和方法调用是一致的.但如果构造函数没有形参,JavaScri ...
- JavaScript 函数
JavaScript 函数 介绍:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块.嗯,就像Java中封装的方法一样. 将脚本编写为函数,就可以避免页面载入时执行该脚本. 函数包含着一些代码 ...
- javascript 函数初探 (一)--- 神马是函数
神马是函数? 所谓函数,本质上是一种代码的分组形式.我们可以通过这种形式赋予某组代码一个名字,以便与之后的调用.下面,我们来示范以下函数的声明: function sum(a, b){ var c = ...
- JavaScript函数的概念
函数是这样的一段代码,它只定义一次,但可能被执行或调用任意多次. JavaScript函数是参数化的:函数的定义会包含形参,这些参数在函数的整体中像局部变量一样工作.函数调用时会为形参提供实参的值.除 ...
- Javascript函数重载,存在呢—还是存在呢?
1.What's is 函数重载? );//Here is int 10 print("ten");//Here is string ten } 可以发现在C++中会根据参数的类型 ...
- JavaScript 函数声明,函数表达式,匿名函数,立即执行函数之区别
函数声明:function fnName () {-};使用function关键字声明一个函数,再指定一个函数名,叫函数声明. 函数表达式 var fnName = function () {-};使 ...
随机推荐
- ListView常用属性 (2012-01-12 17:20:27)
比较特别的属性,通过设置这样的属性可以做出更加美观的列表.stackFromBottom——设置该属性之后你最新条目就会显示你列表的最下面,值为true和false,如android:stackFro ...
- swift中tableview的使用和注意事项
今天使用swift写了个简单的tableView,语法和用法上跟oc没多大的区别.但是还是有一些细节的地方需要注意一下的. 先上代码 import UIKit class ViewController ...
- MySQL6
MySQL数据库6 1. 集群概述 性能达到瓶颈的解决方案 Scale Up 向上扩展能力,如增加更好的硬件固态磁盘,加大内存等,成本高,效果不显著 Scale Out 向外扩展,例如建立更多的服务器 ...
- nyoj 93 汉诺塔(三)(stack)
汉诺塔(三) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度 ...
- - > 强烈推荐!!!
学长的微博总是能帮我们解决很多问题QAQ,超有用的: http://blog.csdn.net/cax1165/article/category/6294316/6
- python列表可以加可以乘
python列表可以加可以乘 list=['abcd',786,2.23,'runoob',70.2] tinylist = [123,'runoob'] print(list) print(list ...
- Unity5.1 新的网络引擎UNET(十五) Networking 引用--中
孙广东 2015.7.21 本节提供了与网络系统一起使用的组件的具体信息. 3.NetworkClient NetworkClient 是一个 HLAPI 类,管理网络连接到服务器 - - 相应着 U ...
- Erlang下与其他程序和语言的通信机制(2)
前面聊了普通端口,今天聊下链入式驱动端口,以及NIFs. 链入式驱动端口 如上图所示,链入式驱动端口与Erlang虚拟机存在于同一个OS进程中. 在Erlang这边与普通端口类似,所有与链入式驱动端口 ...
- 【java项目实践】具体解释Ajax工作原理以及实现异步验证username是否存在+源代码下载(java版)
一年前,从不知道Ajax是什么,伴随着不断的积累,到如今常常使用,逐渐有了深入的认识. 今天,假设想开发一个更加人性化,友好,无刷新,交互性更强的网页,那您的目标一定是Ajax. 介绍 在具体讨论Aj ...
- [LeetCode][Java] N-Queens II
题目: Follow up for N-Queens problem. Now, instead outputting board configurations, return the total n ...