博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
深入理解 JavaScript Function
阅读量:6324 次
发布时间:2019-06-22

本文共 1325 字,大约阅读时间需要 4 分钟。

1.Function Arguments

JavaScript 函数的参数

类型可以是 复杂类型如  Object or Array 和简单类型 String Integer null undefined;当参数是 复杂类型的时候,将会把 复杂类型的 引用传出 函数体内,也就是传入函数内的不是 复杂类型的副本,而是其在内存中的指针。当参数是 简单类型的时候,就会直接传值进入函数体内。look the below demostrated:

var obj={name:'joe'};

(function changeName(obj){

     obj.name='new joe';

})(obj);

console.log(obj.name);  //new joe

var num=2;

(function(num){

    num=3;

})(num);

console.log(num); //2

JavaScript 函数类型

函数声明和函数表达式

函数声明如下:

function fname(){

}

函数表达式如下:

var fname=function(){

}

函数声明可以在 解释器 解析之前调用, 函数表达式从另一个角度来看是赋值表达式的子集。 赋值完,才可以调用;for example:

declaration();  //declaration

   function declaration() {
       console.log('declaration');
   }

   expression(); // function undefined

   var expression = function() {
       console.log('expression');
   }

运行 expression 函数为 抛出异常,但是 declaration函数运行正常。这就是区别。

因为 JavaScript在程序执行之前,声明函数已经被解析了,所以在函数定义之前可以去 调用它。

而函数表达式 则是在 函数未赋值给变量之前,是不能调用的。所以,好的代码格式是 把 变量声明在

前面,下面看一个例子:

var expression;

console.log(typeof expression);//undefined

console.log(typeof declarations); // function
if(true) {

    function declarations() {

        console.log('dec');
    }

    expression = function() {

        console.log('exp')
    }
}

declarations(); //dec

expression();   //exp

 

function scope

JavaScript 是一函数来区分作用域的。

var num=20;

(function (){

console.log(num) //30

num=30;

})();

console.log(num); //20

 

原文地址:

转载于:https://www.cnblogs.com/Mr-Joe/p/2973813.html

你可能感兴趣的文章
Redis学习-SortedSet
查看>>
android CoordinatorLayout使用
查看>>
机器学习资料大汇总
查看>>
Python selenium 滚动条 详解
查看>>
微信程序开发
查看>>
如何退出minicom【学习笔记】
查看>>
Sqlserver 数据库基本查询
查看>>
图书馆维护系统总结
查看>>
[hadoop源码阅读][5]-counter的使用和默认counter的含义
查看>>
SAP HUM 如何对一个HU做上架?
查看>>
LINUX系统中动态链接库的创建与使用{补充}
查看>>
三维视觉国际会议首度在中国举办
查看>>
达索系统入手XFlow开发商 强化3DEXPERIENCE平台的仿真能力
查看>>
自动化运维工具之ansible
查看>>
memcached的安装
查看>>
freebsd系统安装
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Linux LTP 测试框架
查看>>
log4j 每次运行生成文件
查看>>