JS|JS (函数)

函数函数不是数。
函数只是一种语法结构。
函数是一种将若干行代码“包装”起来作为一个整体而使用的一种语法结构。
函数可以说是一种需要去定义并使用的语法——类似变量:需要定义,并使用之。
函数是为了完成某种特定功能且通常是“需要反复执行的功能”——函数的目的就是执行其中包起来的那些代码块(语句块)
函数是一个独立的执行空间,即其内容的代码跟函数外部的代码可以认为是“分离”的。
函数的定义形式:
function函数名(形式参数1,形式参数2,…){
//其中要执行的语句块——函数体
}
var s1 = parseInt(3.5); //3
var s2 = parseInt(3.8); //3
var s3 = parseInt(3.1); //3
var s4 = parseInt(3.0); //3
var s5 = parseInt(3); //3
——parseInt其实就是一个函数——系统内部函数。此函数具有一种“神奇的能力”:将给他的一个数字转变成一个相应的整数,该整数是不大于该给定数字的最大整数。
提出需求:
我想要求3和4两个直角边对应的斜边。
还还想要球5和6对应的斜边,还有,7和8,还有。。。。。。。。
函数到底是什么?函数只是模块化编程思想的语法体现——所谓模块化编程思想就是将各种“反复要执行的任务”做出一个独立的“模块”,用的时候就“直接调用”,这样就节省了反复要写的那些代码。
函数的调用形式: 函数名(实际参数1,实际参数2,….. );
函数调用过程: 1,首先将调用函数处的实际参数值一一对应传递给函数定义处的形式参数。
a)形式参数一定只能是一个“变量名”,它代表一定的实际含义——根据函数功能而定。b)实际参数一定只能是一个“数据”(可能为直接数据或变量数据)
c)注意:形式参数中的变量名不能使用var,也不能在其他地方定义。
2,接着程序的执行流程进入到函数内部,按应该的流程执行函数中的“所有语句”
3,函数内部程序执行完毕,则程序的执行流程会回到函数调用的位置。
a)如果函数执行的任务需要有返回值,则必须使用return语句将该值返回。此时函数也自然结束了。
b)如果一个函数不需要返回值,也是可以使用return语句的,则此时只是表明函数立即在此结束(可能并没有完全执行完所有语句)
函数的返回值2种情况:
有返回值:表示函数经过一定的“计算”(执行),会得出一个数据,并且会将该数据返回到调用位置(调用者)。此时就必须使用“return 某值;”来实现。——比如:老板拿一定的钱吩咐某员工买火车票,则该员工需要将该购得的火车票交回给老板。
特别注意:有返回值的时候,要把函数的调用当作一个值来看待。
一个函数有没有返回值并不是语法所决定的,而是实际需求所决定——语法只是据实际需求而变。
无返回值:表示一个函数只是单纯地去执行里面的代码,执行完就算结束,并不需要返回一个数据给“调用者”。
函数的参数:完全没有语法上的规定,而是要根据应用的需求本身来决定有没有参数或有几个参数——即完成该函数的功能,应该提供哪些必要的数据,此数据也就反应为函数的形式参数,每个形式参数各代表一定的含义(数据)。

变量的作用域 所谓作用域就是指“有效的可用的范围”
作用域分两种:
全局作用域:在所有程序范围内都可以使用(有效)的范围。
局部作用域:只在特定范围内(通常是函数内部)可以使用(有效)的范围。
变量从作用域角度分两种:
全局变量:指一个变量可以在全局范围内使用(有效)。在函数外部定义的变量就是全局变量。全局变量可以在函数外部和函数内部都能使用。
局部变量:指一个变量只能在特定范围(通常就是函数)内部有效——通常就是定义该变量的函数内部
系统内部函数 parseInt(xxx):将参数xxx转换为一个整数——取整操作。
parseInt( 3 ); è3
parseInt( 3.8 ); è3
parseInt( 3.1 ); è3
parseInt( “3” ); è3
parseInt( “3.8” ); è3
parseInt( “3.1” ); è3
parseInt( “3abc” ); è3
parseInt( “3.8abc” ); è3
parseInt( “3.1abc” ); è3
parseInt( “abc3” ); èNaN
parseInt( “abc 3.8” ); èNaN
parseInt( “abc3.1” ); èNaN
parseInt( “abc” ); èNaN

NaN——它是一个特殊的数字(类型为number),其含义是:Not a Number(即非数字)——此情形其实通常是指需要一个数字但提供的数据不是一个数字或不能转成一个数字的时候。——NaN这个数字跟任何数都不相等,包括它本身。

parseFloat(xxx):将参数xxx转换为一个小数。
parseFloat ( 3 ); è3
parseFloat ( 3.8 ); è3.8
parseFloat ( 3.1 ); è3.1
parseFloat ( “3” ); è3
parseFloat ( “3.8” ); è3.8
parseFloat ( “3.1” ); è3.1
parseFloat ( “3abc” ); è3
parseFloat ( “3.8abc” ); è3.8
parseFloat ( “3.1abc” ); è3.1
parseFloat ( “abc3” ); èNaN
parseFloat ( “abc 3.8” ); èNaN
parseFloat ( “abc3.1” ); èNaN
parseFloat ( “abc” ); èNaN

Number( xxx ):将参数xxx转换为一个“数字”——注意跟parseFloat对比。
Number ( 3 ); è3
Number ( 3.8 ); è3.8
Number ( 3.1 ); è3.1
Number ( “3” ); è3
Number ( “3.8” ); è3.8
Number ( “3.1” ); è3.1
Number ( “3abc” ); èNaN
Number ( “3.8abc” ); èNaN
Number ( “3.1abc” ); èNaN
Number ( “abc3” ); èNaN
Number ( “abc 3.8” ); èNaN
Number ( “abc3.1” ); èNaN
Number ( “abc” ); èNaN
isNaN(xxx): 判断参数xxx是否是一个“非数字”——如果是一个非数字,结果是true,否则如果是数字,结果是false
isNaN ( 3 ); èfalse
isNaN ( 3.8 ); èfalse
isNaN ( 3.1 ); èfalse
isNaN ( “3” ); èfalse
isNaN ( “3.8” ); èfalse
isNaN ( “3.1” ); èfalse
isNaN ( “3abc” ); ètrue
isNaN ( “3.8abc” ); ètrue
isNaN ( “3.1abc” ); ètrue
isNaN ( “abc3” ); ètrue
isNaN ( “abc 3.8” ); ètrue
isNaN ( “abc3.1” ); ètrue
isNaN ( “abc” ); ètrue

昨日回顾 函数:
概念:一段代码的封装体。执行的时候函数是相对独立的语句块。
定义:函数必定是需要定义之后才能使用(调用)
function函数名( 形式参数1, 形式参数2, ….)
{
///
}
使用(调用):
函数名(实际参数1, 实际参数2, ….);
函数参数:
形式参数:只是一个变量名,在该函数内部可以使用之。通常定义的时候我们自己“心里默默”假设其为某个含义。形式参数只是一个“代号”,代表应用中数据名(实际数据值要靠实际参数传递过来)
【JS|JS (函数)】 实际参数:表示调用函数的时候穿过去的实际数据,可以是直接数据(比如5,”abc”),也可以是变量数据(比如:a,v1)——实际参数应该跟形式参数一一对应
按返回值分类:
有返回值: 在函数内部合适的位置使用“return xx值;”
有返回值的函数,通常要将函数的调用结果当作一个值来使用,其形式常常如下:
var m1 = f1();
var m2 = f2(1,2,3) + 5;
var m3 = f3(“abc”) + f4(2, “def”);
alert(f5());
document.write(“结果为:” + f6(3,4,5));
无返回值:如果没有return 语句,函数执行完自然结束,则没有返回值。也可能函数内部使用空的return语句,也是没有返回值:“return ;”
无返回值的函数,基本上就一个用法:调用函数就是一条独立语句,如下所示:
f7();
f8(1,2,3);
f9(“abc”, 1 );
——也就是说,return语句会直接结束函数。
作用域:指的是一个变量可以使用的范围。
全局作用域:在函数外部和内部都有效,都可以使用。
局部作用于:只在某具体函数内部有效(可以使用)。
按作用域变量的分类:
全局变量:
局部变量:
系统常用内部函数:
parseInt(xxx):可以将数字或前面有数字的字符串转换为一个整数
parseFloat(xxx): 可以将数字或前面有数字的字符串转换为一个小数
Number(xxx): 可以纯数字的字符串转换为一个数字
isNaN(xxx):判断一个字符串是否是一个“非数字”:如同字符串内容整体是一个有效数字,则结果是false,否则为“true”——true就是表示不是一个数字。

    推荐阅读