<JavaScript高级程序设计>笔记一: 函数function



研究了一下<JavaScript高级程序设计>,书不赖 挺合适有其他的语言基础的人来学.
感觉JS里不光有OO的思想,感觉更像是C++:除了对象也需要main这类东西做过程控制.
特别是学到函数这块,有点儿当年拿C写嵌入式程序时候的感觉 哈哈



一.函数名和函数调用

1.函数名相只是个指针变量(个人感觉当于C中的函数指针).

Js中var是松散类型的,也就是说这个指针变量其实可以指向:非Js基础类型的任何一种引用型的对象.(Js变量分基础类型和引用型两种)

2.函数调用的语法是: 函数名() (感觉是函数指针的调用)

/**   
				 * http://blog.csdn.net/ruantao1989  
				 * ==>July18 一.函数名和函数调用
				*/ 
				function add10( num )//==>声明函数
				{
					return (num + 10);//==>没return的话函数就返回undefined
				}
				var otherFunName = add10;//==>函数指针变量的拷贝
				alert( otherFunName(10) );//==>调用函数指针



二.函数对变量作用域的影响

JavaScript不像其他语言用大括号{}来划定局部变量的作用域.唯一能划清局部作用域的界限就是对象,function就是比较重要的对象

				/**   
				 * http://blog.csdn.net/ruantao1989  
				 * ==>July18 二.函数对变量作用域的影响
				*/
				var val = "out";
				(function(){
					
					for( var val=0 ; val < 3 ; val ++ )
					{
					}

					alert("==>匿名函数内部val的值:" + val );//==>3,答案没错:for循环都不算局部作用域
				})() //==>匿名函数最后加()表示调用此函数

				alert("==>外部val的值:" + val);//==>"out"



三.两种声明函数的方法,是否可以先调用后声明

/**   
				 * http://blog.csdn.net/ruantao1989  
				 * ==>July18 三.函数对变量作用域的影响
				*/
				alert(b())//==> b函数的声明方法会导致Js提前编译函数
				//alert(a());//==> a()的声明方法不行, 这样调用会产生错误:大意是:a不是函数对象 所以无法调用
				
				function b()//==>这种声明不受先后顺序影响,可以先调用后声明
				{
					return "==>b";
				}

				var a = function(){
					return "==>a";
				};



四.函数参数,传入函数指针

				/**   
				 * http://blog.csdn.net/ruantao1989  
				 * ==>July18 四.函数参数,传入函数指针
				*/
				function add20( num )
				{
					return (num + 20);
				}

				function sumAll( funPointer , n )//==>动态传入函数指针
				{
					return funPointer( n );
				}
			
				alert("==>" + sumAll(add20,30) );




作者:ruantao1989
出处:http://blog.csdn.net/ruantao1989
申明:作者写博是为了总结经验,和交流学习之用。如需转载,请尽量保留此申明,并在文章页面明显位置给出原文连接。谢谢!










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值