Js函数

 

1. 函数定义时候传递的参数

参数类型为 -- 基本数据类型 

    不会外部定义变量的值产生影响,是否可以理解为函数为基本数据类型的参数开辟了新的空间,指向这个空间之后,即使修改了参数的值耶不会改变原始值

参数类型为 -- 数组/对象

    将数组或者对象作为参数传递进函数时, 对象值或者数组值得改变,会影响到外部变量得值. 这是因为他们指向得是同一个空间,所以改变参数值也会改变数组对象得值

arguments

    从【0】下标开始,可以获取给函数的传参

参数为函数的时候

  

2. 基本数据类型和数组对象得拷贝

3. 在函数内部定义得变量,只能在该函数内部调用,外部不能调用该变量会报错, 嵌套的函数可以使用父函数里面定义的变量

4. 闭包 ( 1. 供函数外部访问函数内部定义的变量(因为函数的作用域链的问题) 2. 将函数内部创建的变量的值始终保持在内存中,以供本地环境使用)

// 方法一
// 并不是直接访问的abc函数中定义的a变量,而是创建了一个新的变量来代替她的值
// abc函数再调用完毕后,a变量也就被回收了,但是闭包的话是依旧保存着这些变量的
function abc (){
  var a = 10;
  return a;
}
var b = abc(); 
b = b + 10; // 20

// 方法二 -- 闭包实现
function bcd () {
  var a = 10;
  return function () {
    return a + 10;
  }
}
bcd()()

5. arguments.callee

6.

function outside (x) {
  return function (y){
    return x + y;
  };
};
outside(3)(5); //8

 

7. 作用域链(函数A, B, C, A 嵌套 B, B 嵌套 C, C可以调用 B 和 A 中定义的变量和方法, B 可以调用 A中定义的变量和方法, 但是A 不能调用 B 和 C的)

 

转载于:https://my.oschina.net/u/4085373/blog/3018240

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值