JavaScript函数总结

weixin_47221159 2020-04-24 03:49:35
JavaScript函数总结
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:Adobe Dreamweaver JavaScript
作者:黄富滔
撰写时间:2020年4月24日
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
知识点罗列
1、函数的定义:
①:函数也是一个对象
②函数可以对代码进行封装,减少代码量
③函数可以保存一些代码在需要的时候进行调用
④使用typeof检查一个函数对象时,会返回function

2、函数的定义方式
①使用构造函数去创建一个函数 var fun=new function(这里写需要执行的代码);【不建议使用】
-封装到函数中的代码不会即可执行
-函数中的代码会在函数调用的时候执行
-当调用函数时,函数中封装的代码会按照顺序执行
-可以将要封装的代码以字符串的形式传递给构造函数,例如 var fun=newFunction("console.log('这是通过构造函数创建的函数')");
构造函数知识点:
(1)在命名规则上,构造函数首字母一般都是大写,普通函数使用的是小驼峰写命名规则
(2)构造函数和普通函数的区别就是调用方式的不同,普通函数是直接调用,而构造 函数需要使用new关键字来调用。
(3)使用同一个构造函数创建的对象,我们成为一类对象
(4)使用instanceof 可以检查一个对象是否是一个类的实例
语法:对象 instanceof 构造函数
如果是实例,则返回true,否则返回false
构造函数的执行流程
Ⅰ.立刻创建一个新的对象
Ⅱ.将新建的对象设置给函数中的this,在构造函数中可使用this来引用新建的对象
Ⅲ.逐行执行函数中的代码
Ⅳ.将新建的对象作为返回值返回
个人理解:
(1)构造函数的好处:构造函数能够同时享用同一个方法,减少内存空间的浪费,当我们需要多次利用某一个方法时,我们可以不用执行一次就去创建一次
(2)构造函数作用就是利用函数中this的属性值和传递的形参对代码进行一个封装,称之为类。再用构造函数进行调用,调用时在构造函数中写入实参的值,称之为类的实例。
(3)构造函数中享用同一个方法是利用了原型对象,函数创建了以后都会生成一个prototype属性,该属性作为一个指针指向原型对象
例如:向原型对象中添加sayhello的方法
Person.prototype.sayhello=function(){
console.log("大家好!我是"+this.name);
}
拓展部分:对this的情况进行总结:
(1).当以函数的形式调用时,this就是window对象
(2).当以方法的形式调用时,this就是调用方法的这个对象
(3).当以构造函数的形式调用时,this就是新创建的对象

②使用函数声明去创建一个函数 function 函数名(){这里写需要执行的代码};【开发日常建议使用方式】
-该方式可以传递参数 :function 函数名(形参1,形参2,...,形参N){};调用时传入实参:函数名(实参1,实参2...,实参N);说明:该方式可以传入参数,也可以不传参数

③使用函数表达式创建一个函数,称为匿名函数,也可以进行参数的传递
var fun=function(){这里写需要执行的代码};
又可以以此形式写: (function(){这里写需要执行的代码})();此形式又称为立即执行函数【最后面的括号表示函数的调用】
立即执行函数概念: 函数定义完,立即被调用,这种函数叫做立即执行函数,立即执行函数往往只会执行一次,立即执行函数多用于封装一些插件

函数的定义方式总结:
-无论使用那一种定义方式,最后记住一定要进行函数的调用,函数的调用: 函数名(); 。
-定义函数名称时注意不要重复
-当函数以:函数名();方式调用时,是作为函数进行调用的;
当函数以: window.函数名();方式调用时,是作为一个对象进行调用的
3、函数的参数
①可以在函数的()中来指定一个或多个形参(形式参数)
②多个形参之间使用","隔开,声明形参就相当于在函数内部声明了对应的变量
但是并不赋值
③调用函数时解析器不会检查实参的类型,所以要注意,是否有可能会接收到非法的
参数,如果有可能则需要对参数进行类型的检查;例如同时传入false和2两个参数,则会把false转换为0(number数据类型)。
④调用函数时,解析器也不会对检查实参的数量
-多余的参数将不会被赋值
-如果实参少于形参的数据,则没有对应实参的形参将是undefined

4、函数的返回值
-每一个函数都会有一个返回值,这个函数的返回值可以通过一个关键字“return”进行返回设置
语法:return 值;
-return 后面值将会作为函数的执行结果返回,
-可以定义一个变量来接收函数的返回值
-在函数return后的语句都不会执行
-如果return语句后不跟任何值,就相当于返回一个undefined

5、函数的作用域
作用域的概念:一个变量作用的范围,作用域有全局作用域和函数作用域(局部作用域)
-在函数体内定义的变量,是不可以在函数体外进行访问,找不到定义好的变量,意思就是在全局作用域内无法对函数作用域进行一个访问。
- 当在函数作用域操作一个变量时,它会先在自身作用域中寻找,如果有就直接使用,如果没有就向上一作用域中寻找,直到找到全局作用域,如果全局作用域中仍然没有找到,则会报错ReferenceError
- 在函数中想要访问全局变量可以使用window对象

拓展:全局作用域
- 直接写在script标签的JS代码,都在全局作用域
- 全局作用域在页面打开的时候创建,在页面关闭时销毁
- 在全局作用域中有一个对象window,它代表一个浏览器的窗口,它由浏览器创建,我们可以直接使用
- 在全局作用域中:
创建的变量都会作为window对象的属性保存
全局中的函数都会作为window对象的方法保存
- 全局作用域中的变量都是全局变量
在页面的任意的部分都可以访问到
...全文
12 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,099

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧