JS面向对象编程--第三章 函数
来源:互联网 发布:淘宝的隐形眼镜靠谱吗 编辑:程序博客网 时间:2024/06/08 04:33
- 定义和使用函数
- 函数传参
- 预定义函数
- JS中的变量作用域
- 函数也是数据,视为特殊的数据类型
- 本章第二部分
- 匿名函数的调用
- 回调函数
- 即时(自调)函数
- 内嵌函数(函数内部定义的函数)
- 以函数为返回值的函数
- 能重定义自身的函数
- 闭包
一、如果某个函数没有明显的返回值,默认为undefined
一个函数只能返回一个值(多个用数组)
内建变量 arguments —返回函数所接受的所有参数
它不是数组,而是对象
二、预定义函数
1.parseInt(X,10/16/8进制)
if(true)整数类型输出
else return NaN
2.parseFloat()
转换为十进制数 //遇到第一个异常字符就放弃,parseInt也是
3.isNaN()
是否是可参与算术运算的数字,检测parseInt/Float是否成功
NaN === NaN return false
4.isFinite()
检查输入是一个既非NaN又非Infinity的数字
5.encodeURI()/encodeURIComponent()
前者返回一个可用的URL,后者认为我们传递的仅仅是URL的一部分
6.eval()
将输入的字符串当做JS来执行
Eval is evil (Eval 是魔鬼)
(1).安全性方面
(2)性能方面–执行两次 ,一次解析字符串,一次执行JS
三、变量的作用域
如果变量在某个函数中定义,函数以外不可见
if/for代码块中,代码块外可见
1.变量提升
JS进入新的函数时,内部定义的变量都会被提升到函数最开始的地方,并且被提升的只有变量的声明,赋值不会提升
四、函数也是数据
var f=function(){ return 1;}
上面这种方式叫做函数标识记法
1.匿名函数
没有名字的函数
var f=function(a){ return a;};
优雅的用法:
1.作为参数传递给其他函数
2.执行某些一次性任务
2.回调函数
将函数A传递给函数B,并由B来执行A时,A就成了一个回调函数,如果A还是一个无名函数,称它为匿名回调函数
1.不做命名的情况下传递函数(节省变量名的使用)
2.函数调用操作委托给另一个函数(节省代码编写工作)
3.有助于提升性能
4.回调示例
multiplyByTwo(a,b,c,function(a){ return a+1;});合并参数*2并且都+1的操作
4.即时函数
()();
不会产生任何全局变量,无法重复执行
5.内部(私有)函数
有助于我们确保全局名字空间的纯净性
确保私有性————只将一些必要的函数暴露给“外部世界”
6.返回函数的函数
7.能重写自己的函数
“浏览器兼容性探测”
五、闭包
1.子函数可以访问来自自身的作用域,也可以访问来自其父级作用域,形成了一条作用域链(Scope chain)
2.利用闭包突破作用域链
将函数内部的参数/函数拓展到函数以外
未完待续,看闭包看的不想敲了。。。
- JS面向对象编程--第三章 函数
- Javascript面向对象编程指南笔记 - 第三章 - 函数
- 面向对象编程范式##第三章面向对象编程范式
- JS面向对象编程指南--第3章函数
- 第三章 面向对象编程基础知识
- Java基础第三章--面向对象编程
- JS面向对象编程---第四章 对象
- js 面向对象编程
- js 面向对象编程
- js 面向对象编程
- JS面向对象编程
- js面向对象编程
- Js面向对象编程
- JS面向对象编程
- js面向对象编程
- js面向对象编程
- js面向对象编程
- js面向对象编程
- redis秒杀系统数据同步(保证不多卖)
- Android studio Android Monitor介绍四
- drawContours函数注意事项
- C++-----编程实战(一)
- Unity3D-UGUI-带滚动条的滑动文本框
- JS面向对象编程--第三章 函数
- 第79篇Elasticsearch搜索引擎研究及array_walk_recursive及arsort
- windows详细配置gitblit
- struts2多个文件上传
- DBus 的 C 编程接口
- Java线程安全问题与同步锁
- 公众平台商户申请步骤(公众号、扫码、刷卡支付)
- 屏蔽windows应用程序中,windows自带的右键菜单
- 解决C#中ListView数据刷新时界面闪烁的问题