视频学习之函数function 部分

Onida ·
更新时间:2024-11-13
· 522 次阅读

基本功:一句话体现你的能力,经验,遇到什么问题用什么方法,有自己的一套思想。学会企业级开发。
编程的思想:高内聚,低耦合。内部代码联系度强,意味着模块化强,低耦合,重复度低,让一个代码块有强的功能性,独立性。

栈:stack 堆:heap 域:scope
函数名命名规则:
 不能数字开头
 小驼峰命名法:复合单词:第一个单词小写,之后的单词首字母大写

1.为什么叫函数

数学中 y = f(x) 有一个输入,有一个输出

function test (a,b){ 执行语句; }

这叫函数声明(也叫字面量),function 相当于var ;
还有一种是 函数表达式: test 在函数外部不可见,但函数内部可以调用。

var sum = function test (a,b){ //test 可以省略, 执行语句; test();// true } test();// undefined console.log(sum.name)//test 2. 函数的参数和形参实参的映射关系:

形参默认值:undefined

function test(a,b){ console.log(test.length);//2 console.log(argements.length);//3 console.log(arguements);//[1,2,3] } test(1,2,3);

在函数内部可以更改实参的值:

function test(a,b){ a = 3; console.log(argements[0]); } test(1,2);//3

但这里arguments0和 a=3不是同一个,1 是存在堆内存,3是存在栈内存。 arguments是数组,引用类型,存在堆内存中,他们是存在一种映射关系。形参是一个占位,映射arguments

3.函数递归:函数自己调用自己,性能不占优势,占用内存

n的阶乘:
不能用 for循环:

分析: 5!= 54!
4!= 4
3!…

function factorial(n){ if(n === 1){ return 1; } return n*factorial(n-1); } factorial(4);//24

斐波那契数列:

function fibonacci(n){ if(n <=2){ return 1; } return fibonacci(n-1)+fibonacci(n-2); } fibonacci(5);//5 4.立即执行函数:() 全程IIFE

普通函数存在全局执行环境中,ECglobal,不释放,占内存的
我们需要一个函数来只是用一次,然后销毁,于是产生了立即执行函数;
表达式才可以使用立即执行符号——();
基本写法:

(function(){})(); (function(){}()); var sum = (function(){return 10})();//sum = 10; (function test(a){ console.log(a);//10 })(10); var a = (6,5)//5 逗号是运算符,返回 “,” 后面的数 5. call apply 更改this指向 ,还有一个是bind

call 和apply 是function的一个方法;

function test (){ } test.call();//相当于test()

二者的区别在于:call传的是字符串,apply传的是数组,call(Object,’name’);apply(Object,[‘name’])

6.callee 和caller

callee表示返回该调用函数;caller表示返回调用该函数的函数

function test1(){ console.log(arguments.callee.length); //表示形参长度 test2(); } test1(); function test2(){ console.log(test2.caller); } test1();//返回test1 函数
作者:小屠的博客



函数 学习 nc func unc fu io

需要 登录 后方可回复, 如果你还没有账号请 注册新账号