2016.06.13廖雪峰JS__学习笔记(函数部分)__p2
来源:互联网 发布:文华财经期货软件 编辑:程序博客网 时间:2024/06/05 03:47
1
JavaScript的函数也是一个对象
在JavaScript中,定义函数的方式如下:
function abs(x) { if (x >= 0) { return x; } else { return -x; }}
第二种定义函数的方式如下:
var abs = function (x) { if (x >= 0) { return x; } else { return -x; }};
2JavaScript还有一个免费赠送的关键字arguments
,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数。arguments
类似Array
但它不是一个Array
3
利用arguments
,你可以获得调用者传入的所有参数。也就是说,即使函数不定义任何参数,还是可以拿到参数的值
4
实际上arguments
最常用于判断传入参数的个数。
5
rest参数只能写在最后,前面用...
标识,从运行结果可知,传入的参数先绑定a
、b
,多余的参数以数组形式交给变量rest
,所以,不再需要arguments
我们就获取了全部参数。
6
rest参数只能写在最后,前面用...
标识,从运行结果可知,传入的参数先绑定a
、b
,多余的参数以数组形式交给变量rest
,所以,不再需要arguments
我们就获取了全部参数。
如果传入的参数连正常定义的参数都没填满,也不要紧,rest参数会接收一个空数组(注意不是undefined
)。
function sum(...rest) {
}
7
JavaScript引擎有一个在行末自动添加分号的机制,
8
由于JavaScript的函数可以嵌套,此时,内部函数可以访问外部函数定义的变量,反过来则不行
9
全局变量会绑定到window
上,不同的JavaScript文件如果使用了相同的全局变量,或者定义了相同名字的顶层函数,都会造成命名冲突,并且很难被发现。
减少冲突的一个方法是把自己的所有变量和函数全部绑定到一个全局变量中。例如:
// 唯一的全局变量MYAPP:var MYAPP = {};// 其他变量:MYAPP.name = 'myapp';MYAPP.version = 1.0;// 其他函数:MYAPP.foo = function () { return 'foo';};
10由于JavaScript的变量作用域实际上是函数内部,我们在for
循环等语句块中是无法定义具有局部作用域的变量的:
'use strict';function foo() { for (var i=0; i<100; i++) { // } i += 100; // 仍然可以引用变量i}
为了解决块级作用域,ES6引入了新的关键字let
,用let
替代var
可以申明一个块级作用域的变量:
'use strict';function foo() { var sum = 0; for (let i=0; i<100; i++) { sum += i; } i += 1; // SyntaxError}
11由于var
和let
申明的是变量,如果要申明一个常量,在ES6之前是不行的,我们通常用全部大写的变量来表示“这是一个常量,不要修改它的值”:
var PI = 3.14;
ES6标准引入了新的关键字const
来定义常量,const
与let
都具有块级作用域:
'use strict';const PI = 3.14;PI = 3; // 某些浏览器不报错,但是无效果!PI; // 3.14
- 2016.06.13廖雪峰JS__学习笔记(函数部分)__p2
- 2016.06.14廖雪峰JS__学习笔记(函数部分)__P4
- 2016.06.13廖雪峰JS__学习笔记(快速入门部分)__p1
- 2016.06.14廖雪峰JS__学习笔记(对象部分)__P5
- 2016.06.15廖雪峰JS__学习笔记(JSON)__P7
- 2016.06.19廖雪峰JS__学习笔记(Promise)__P14
- 2016.06.14廖雪峰JS__学习笔记(高阶函数)__P3
- 2016.06.15廖雪峰JS__学习笔记(正则表达式)__P6
- 2016.06.15廖雪峰JS__学习笔记(原型对象)__P8
- 2016.06.15廖雪峰JS__学习笔记(原型继承)__P9
- 2016.06.15廖雪峰JS__学习笔记(class继承)__P10
- 2016.06.15廖雪峰JS__学习笔记(浏览器对象)__P11
- 2016.06.17廖雪峰JS__学习笔记(操作DOM)__P12
- 2016.06.17廖雪峰JS__学习笔记(操作表单)__P13
- 廖雪峰python学习笔记(2——函数)
- 廖雪峰python学习笔记7:函数
- 廖雪峰python学习笔记——函数式编程
- [廖雪峰 - Python2.7教程] 返回函数 - 学习笔记
- Security "Crypto" provider deprecated in Android N
- Stanford NER Service使用
- Android样式的开发:layer-list篇
- AngularJS控制器
- 用于显示不同数据状态的父View
- 2016.06.13廖雪峰JS__学习笔记(函数部分)__p2
- 剑指offer-面试题11:数值的整数次方
- CentOS环境下使用javaCV
- 时间类
- 【C/C++】计算二进制中的1的简单方法
- iOS 图片轮播图浅析,教你用SDCycleScrollView自定义样式,花式轮播到根本停不下来
- 小数精度,经常忘,方便自己看的
- date
- Linux-systemctl命令