JS MDN 学习笔记(函数)6

一、定义函数

①函数声明

function square(number) {
  return number * number;
}

原始参数(比如一个具体的数字)被作为值传递给函数;值被传递给函数,如果被调用函数改变了这个参数的值,这样的改变不会影响到全局或调用函数;
如果你传递一个对象(即一个非原始值,例如Array或用户自定义的对象)作为参数,而函数改变了这个对象的属性,这样的改变对函数外部是可见的

②函数表达式

匿名函数

var square = function(number) { return number * number; };

也可提供函数名,并且可以用于在函数内部代指其本身,或者在调试器堆栈跟踪中识别该函数:

var factorial = function fac(n) {return n<2 ? 1 : n*fac(n-1)};
console.log(factorial(3));

③Function 构造器*

二、调用函数

递归:函数可以自己调用自己

三、函数作用域

四、作用域和函数堆栈

递归
一个函数可以指向并调用自身:
①函数名
argument.callee
③作用域下的一个指向该函数的变量名

var foo = function bar() {
   //bar()
   //arguments.callee()
   //foo()
   //这三种语句是等价的
};

嵌套函数和闭包
一个函数嵌套另外一个函数,内部函数对其外部函数是私有的,自身形成了一个闭包。
一个闭包是一个可以拥有独立的环境与变量的表达式(通常是函数)
嵌套函数是一个闭包,嵌套函数可以继承容器函数的参数和变量,内部函数包含外部函数的作用域
总结:内部函数只可以在外部函数中访问;内部函数形成了一个闭包,它可以访问外部函数的参数和变量,但是外部函数却不能使用它的参数和变量。

function outside(x) {
  function inside(y) {
    return x + y;
  }
  return inside;
}
fn_inside = outside(3); // 可以这样想:给一个函数,使它的值加3
result = fn_inside(5); // returns 8

result1 = outside(3)(5); // returns 8

保存变量
上述例子,inside 被返回时 x 是怎么被保留下来的?

多层嵌套函数
作用域链

命名冲突
优先级:
inside> outside>全局对象

五、闭包

var getCode = (function(){
  var secureCode = "0]Eal(eh&2";    // A code we do not want outsiders to be able to modify...
  
  return function () {
    return secureCode;
  };
})();

getCode();

六、使用 arguments 对象

函数的实际参数会被保存在一个类似数组arguments对象中

arguments[i]

七、函数参数

默认参数
JS中函数参数默认值是undefined

过去:

function multiply(a, b) {
  b = (typeof b !== 'undefined') ?  b : 1;

  return a*b;
}

multiply(5); // 5

ES6:

function multiply(a, b = 1) {
  return a*b;
}

multiply(5); // 5

剩余参数
将不确定数量的参数表示成数组

function multiply(multiplier, ...theArgs) {
  return theArgs.map(x => multiplier * x);
}

var arr = multiply(2, 1, 2, 3);
console.log(arr); // [2, 4, 6]

八、箭头函数

简洁、 this

九、预定义函数

eval()
isFinite()
isNaN()
parseFloat()
parseInt()
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
MDN(Mozilla Developer Network)和javascript.info都是非常受欢迎的JavaScript文档和教程网站,它们在JavaScript开发社区中都享有很高的声誉。然而,它们在内容、风格和目标受众上有一些不同之处。 MDN作为Mozilla基金会的官方文档网站,提供了广泛的Web技术文档,包括JavaScript。它的内容非常全面,详细介绍了JavaScript的各个方面,从语法基础到高级概念和API参考都有涉及。MDN的文档通常更加正式、详实,并且有良好的组织结构和维护。 javascript.info是由一位独立开发者编写和维护的教程网站,旨在提供简洁、易于理解的JavaScript教程。它以教学为主,适合初学者和中级开发者。javascript.info的教程风格更加友好、亲切,并且提供了大量的实例和示例代码。 关于哪个网站更权威,这取决于你所追求的目标和需求。如果你需要详细、全面的参考文档和规范解释,MDN是一个非常可靠的选择。如果你是初学者或更倾向于通过教程来学习和理解JavaScript,javascript.info提供了更加友好和易于理解的教程。 在实际开发中,建议结合两个网站的内容,根据自己的学习和开发需求来查阅和参考。不同的网站可能在某些主题或方面提供了不同的解释和示例,多方参考可以帮助你获得全面的理解和知识。同时,也可以参考其他可靠的资源,如官方规范、书籍和其他开发者社区的贡献。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值