前面的话:JavaScript可运行在所有主要平台的主流浏览器上,也可运行在每一个主流操作系统的服务器端上。所以呢,要想成为一名优秀的全栈工程师,必须懂得JavaScript语言。这是我整理的JS的部分函数问题,供大家参考借阅,有不妥的地方也请多多指教。
1.1 函数的功能 1.2 函数的参数
a. 形参——定义函数的时候,没有实际的值,给实参占位 b. 实参——调用函数的时候,有实际的值; c. 当调用函数的时候会把实参复制一份传递给函数 d. 函数调用的时候,实参和形参的个数可以不等 e. 在其他语言中,有重载的概念,即函数的名字相同,但参数个属不同;但javascript中没有重载的概念。下面的相同名称的函数会把上面的函数覆盖1.3 函数的返回值——返回计算的结果
1)函数返回,后续的代码不会执行 2)如果return后面跟内容了,就返回return后面的内容 3)如果return后面没有跟内容,返回undefined,return后面的代码不会执行 4)如果函数内部没有写返回值,返回undefined 5)推荐的作法是要么让函数始终都返回一个值,要么永远都不要返回值function funName(a, b) { }
2.1 判断输入的参数是否为空(过滤掉undefined null NaN " " 0)
a = a || 0; b = b || 0;2.1 判断输入的参数是否为数字
5.2 函数对自身的调用称为递归【自调用函数】
——递归会消耗资源,当自身调用太多次仍会出现报错。 5.3 函数是一种数据类型 function ①函数可以作为另一种函数的参数(如5.1) ②函数可以作为函数的返回值6.1 函数声明 function fn() { } 6.2 函数表达式 var myFun = function () {} //这里调用的是匿名函数 6.3 函数声明和函数表达式的区别:
i)函数声明——函数提升 ii)函数表达式——变量提升(下面会详细介绍)7.1 全局作用域:在任何位置都可以访问【全局变量】
i)在script标签中定义的变量 ii)不使用var声明的变量 iii)在关闭网页或浏览器,全局变量才会释放7.2 局部作用域:在函数内部声明一个变量,只能在该函数内部使用【局部变量】
i)只有在函数内部使用var定义的变量
ii)超出函数的作用范围后,局部变量被销毁7.3 javascript中没有块级作用域
i)块级作用域:在其他语言中,在代码块中定义的变量,外部是访问不到的; ii)if 和 for 中使用var定义的变量都是全局变量8.1 函数内部,获取变量的时候,会先在当前作用域下找,有没有变量声明,如果有就返回当前作用域中变量的值 8.2 如果当前作用域中没有对应变量的声明,会返回上一级去找
1)解析器预解析的过程:
i,解析器
①全局作用域 预解析
a) var num ; b) function fun ()②一行一行执行代码
a) num = 10; b) fun (); 调用fun函数 i) fun的局部作用域 One. 预解析 First. var num; Two. 一行一行执行代码 First. console.log(num); 输出undefined Second. num = 20; var num; function fun () { var num; console.log (num ); num = 20; } num = 10; fun();var num = 10; fun(); function fun () { var num; console.log (num ); num = 20; } // 函数内部访问外部变量 var a = 10; function fn () { console.log(a); } 2)变量提升——定义变量的时候,变量的声明会被提升到作用域的最上面,变量的赋值不会提升 3)函数提升——JavaScript解析器首先会把当前作用域的函数声明提前到整个作用域的最前面
9.2 自定义构造函数
① 内存开辟空间,存储新创建的对象 new Object (); ② 会把this设置为当前对象 ③ 执行函数内部的代码,设置对象的属性和方法 ④ 返回新创建的对象
转载于:https://www.cnblogs.com/DF-fzh/p/5343530.html
相关资源:浅谈Javascript中的函数、this以及原型