Javascript我学之二函数定义
本文是金旭亮老师网易云课堂的课程笔记,记录下来,以供备忘
函数
几个要点:
定义方式
a)命名函数:
除非在另一个函数内部定义,否则,命名函数是全局的。
// 全局的命名函数
function add(x, y) {
return x + y;
}
console.info(add(, )); //
b)匿名函数:
匿名函数通常赋值给一个变量,再通过变量调用。
var func = function (x, y) {
return x + y;
}
console.info(func(5, 2)); //
匿名函数适用于以下这种 “立即执行的匿名函数” 的情况:
console.info(
function (x, y) {
return x + y;
}(100, 200) //立即调用
);
C)定义方式影响代码执行效果
命名函数可以先使用,再定义
console.info(sum(10, 10));
function sum(num1, num2) {
return num1 + num2;
}
匿名函数必须先定义,再使用
//console.info(sumFunc(10, 10)); //Uncaught TypeError: Property 'sumFunc' of object [object Object] is not a function
var sumFunc = function (num1, num2) {
return num1 + num2;
};
console.info(sumFunc(10, 10));
函数返回值:
用return 生成返回值.如没有return ,则函数返回undefined
function func() {
}
console.info(func()); //undefined
function func2() {
return; //空的返回语句
}
console.info(func2()); //undefined
return里藏着的坑:
var func = function (x, y) {
var sum = x + y;
return {
value : sum
}
}
这么写没有问题: 调用 func(5,5) 返回的是 Object {value: 10}
然而:
var func = function (x, y) {
var sum = x + y;
return
{
value: sum
};
}
console.info(func(5,5)); //undefined
函数即对象:
function add(x, y) {
return x + y;
}
console.info(add(100, 200)); //
var other = add; //other和add引用同一函数对象
console.info(other(300, 400)); //
console.info(typeof other); //function
console.info(add === other); //true
嵌套定义的函数:
function outerFunc(a, b) {
function innerFunc(x) {
return x * x;
}
return Math.sqrt(innerFunc(a) + innerFunc(b));
}
console.info(outerFunc(3, 4)); //
访问外部变量:
1 var globalStr = 'globalStr';
function outerFunc2(argu) {
var localVar = 100;
function innerFunc2() {
localVar++;
console.info(argu + ":" + localVar + ":" + globalStr);
}
innerFunc2(); //hello:101:globalStr
}
outerFunc2("hello");
返回函数的函数:
因为函数是对象,所以可以作为返回值。
function outerFunc(x) {
var y = 100;
return function innerFunc() {
console.info(x + y);
}
}
outerFunc(10)(); //
Javascript我学之二函数定义的更多相关文章
- JavaScript要点 (五) 函数定义
JavaScript 使用关键字 function 定义函数. 函数可以通过声明定义,也可以是一个表达式. 函数声明分号是用来分隔可执行JavaScript语句. 由于函数声明不是一个可执行语句,所以 ...
- JavaScript入门学习之二——函数
在前一章中讲了JavaScript的入门语法,在这一章要看看函数的使用. 函数的定义 JavaScript中的函数和Python中的非常类似,只不过定义的方式有些不同,下面看看是怎么定义的 //定义普 ...
- Kotlin(二) 函数定义
1.不带参数,不返回值的函数 fun sum(){} 2.带参数,不带返回值的函数 fun sum(a:Int){} 3.带参数,带返回值的函数 fun sum(a:Int,b:Int) : Int{ ...
- 深入理解javascript函数定义与函数作用域
最近在学习javascript的函数,函数是javascript的一等对象,想要学好javascript,就必须深刻理解函数.本人把思路整理成文章,一是为了加深自己函数的理解,二是给读者提供学习的途径 ...
- JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)
1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. ...
- JavaScript函数定义和调用 变量作用域
本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 JavaScript中函数定义可以是这样的格式 function 函数名(参数) { 函数体 } 也可以是这样的格式 ...
- JavaScript函数定义 ,参数调用
一.JavaScript函数函数: 函数就是一种封装,由事件驱动的或者当它被调用时执行的可重复使用的代码块.定义函数:function 函数名(){函数体;}数不会自动执行,需要被调用才可以执行函数名 ...
- Javascript异步编程之二回调函数
上一节讲异步原理的时候基本上把回掉函数也捎带讲了一些,这节主要举几个例子来具体化一下.在开始之前,首先要明白一件事,在javascript里函数可以作为参数进行传递,这里涉及到高阶函数的概念,大家可以 ...
- 【Python基础学习二】定义变量、判断、循环、函数基本语法
先来一个愉快的Hello World吧,就是这么简单,不需要写标点符号,但是需要严格按照缩进关系,Python变量的作用域是靠tab来控制的. print("Hello World" ...
随机推荐
- Superset安装与使用
参考: https://www.jianshu.com/p/b02fcea7eb5b
- css高級技巧
1.鼠標顯示 a:小手cursor:pointer b:默認cursor:default c:勾選文本cursor:text d:拖動cursor:move 2.css三種佈局模型 a.流動模型(默認 ...
- Cut 'em all! CodeForces - 982C(贪心dfs)
K - Cut 'em all! CodeForces - 982C 给一棵树 求最多能切几条边使剩下的子树都有偶数个节点 如果n是奇数 那么奇数=偶数+奇数 不管怎么切 都会有奇数 直接打印-1 贪 ...
- 爬虫系列之mongodb
mongo简介 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非 ...
- BZOJ2527[Poi2011]Meteors——整体二分+树状数组
题目描述 Byteotian Interstellar Union (BIU) has recently discovered a new planet in a nearby galaxy. The ...
- Codeforces437 B. The Child and Set
题目类型:位运算 传送门:>Here< 题意:给出\(sum和limit\),求一个集合\(S\),其中的元素互不相同且不超过\(limit\),他们的\(lowbit\)之和等于\(su ...
- <Android基础>(三) UI开发 Part 3 RecyclerView
RecyclerView 1)RecyclerView的基本用法 2)横向滚动和瀑布流滚动 3)注册点击事件 3.6 强大的滚动控件 RecyclerView ListView缺点: 1.不使用技巧优 ...
- null引用,有时候是实现了父类的方法,方法体没写任何实现
null引用,有时候是实现了父类的方法,方法体没写任何实现 /* @Override public void attachView(MonthListContract.View view) { } * ...
- 数据库学习之MySQL基础
数据库基础 一.数据库简介 数据库:存放数据的仓库 sql及其规范 sql是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能 ...
- 069、Calico的默认连通性(2019-04-12 周五)
参考https://www.cnblogs.com/CloudMan6/p/7536746.html Calico 跨主机连通性测试 root@host1:~# docker exec bbo ...