编程语言
C#编程语言基础
C#面向对象与多线程
C#数据及文件操作
JavaScript基础
JavaScript的数据类型和变量
JavaScript的运算符和表达式
JavaScript的基本流程控制
JavaScript的函数
JavaScript对象编程
JavaScript内置对象和方法
JavaScript的浏览器对象和方法
JavaScript访问HTML DOM对象
JavaScript事件驱动编程
JavaScript与CSS样式表
Ajax与PHP
ECMAScript6的新特性
Vue.js前端开发
PHP的常量与变量
PHP的数据类型与转换
PHP的运算符和优先规则
PHP程序的流程控制语句
PHP的数组操作及函数
PHP的字符串处理与函数
PHP自定义函数
PHP的常用系统函数
PHP的图像处理函数
PHP类编程
PHP的DataTime类
PHP处理XML和JSON
PHP的正则表达式
PHP文件和目录处理
PHP表单处理
PHP处理Cookie和Session
PHP文件上传和下载
PHP加密技术
PHP的Socket编程
PHP国际化编码
MySQL数据库基础
MySQL数据库函数
MySQL数据库账户管理
MySQL数据库基本操作
MySQL数据查询
MySQL存储过程和存储函数
MySQL事务处理和触发器
PHP操作MySQL数据库
数据库抽象层PDO
Smarty模板
ThinkPHP框架
Python语言基础
Python语言结构与控制
Python的函数和模块
Python的复合数据类型
Python面向对象编程
Python的文件操作
Python的异常处理
Python的绘图模块
Python的NumPy模块
Python的SciPy模块
Python的SymPy模块
Python的数据处理
Python操作数据库
Python网络编程
Python图像处理
Python机器学习
TensorFlow深度学习
Tensorflow常用函数
TensorFlow用于卷积网络
生成对抗网络GAN
函数,是编写程序时定义的一个语句序列,以实现一项或多项任务。使用函数的一个好处是其可重用性,常用的程序序列写成函数就能在需要的地方调用,不必多处重写;另一个好处在于能够降低程序的复杂度,可以把较大的程序分解成几个较小的程序段,从而把一项较大的复杂任务分解成多个容易解决的小任务。
1.结构化程序设计:
结构化程序设计是指按照模块化、层次化的方法来设计程序,以提高程序的可读性和可维护性,包括三个方面:
①程序模块化:是指把一个大程序分解成若干个小程序(即模块)。通常按功能划分模块,使每个模块实现相对独立的功能,并且使模块之间的联系尽可能简单。
②语句结构化:是指每个模块用顺序、选择和循环3种流程结构来实现,这3种结构的共同特点是只有一个入口和一个出口,这对于保证程序的良好结构、检验程序的正确性是十分重要的。
③自顶向下、逐步求精的设计过程:一方面是指将一个复杂问题的求解过程分解和细化成由若干个模块组成的层次结构;另一方面是指将每个模块的功能逐步分解、细化为一系列的处理步骤,直至分解为3种基本的控制结构(顺序、选择、循环)的组合。
结构化程序设计有很多优点:各模块可以分别编程,使程序易于阅读、理解、调试和修改;方便新功能模块的扩充;功能独立的模块可以组成子程序库,有利于实现软件重用等。
2.函数定义:
要使用自己定义的函数,必须先定义函数。定义函数时格式为:
function 自定义函数名(形参1,形参2,......)
函数定义以关键字function标识,后面是函数名以及一对圆括号,圆括号内是形参列表。圆括号之后是一对大括号,在大括号内就是函数所包含的语句组,称为函数体。
{
函数体
return [表达式];
}
每个函数都必须有一个函数名,命名规则与变量名一样,在同一文件中的两个函数不能同名。
在HTML文档中,函数定义通常放在<head></head>标签对之间,以确保函数先定义后使用。
3.函数调用:
函数调用的形式是“函数名(实参1,实参2,......)”。函数调用可以以一条语句的形式出现,也可以出现在表达式中(有返回值时)。函数调用必须使用圆括号,即使没有参数。
4.函数参数的使用:
定义函数时,函数名后面的圆括号内可以指定一个或多个参数(用逗号分隔),指定的参数在调用时可以传递一个或多个值。
定义函数时指定的参数称为形式参数,而调用函数时为形参实际传递的值称为实际参数。通常,定义函数时使用了多少个形参,在函数调用时也必须给出同样数目的实参,并且顺序相同,参数之间要用逗号分隔。
在函数体内,形参其实就是一个变量,变量的值要依赖于函数调用时传递的实参值。
5.函数的返回值:
在JavaScript中,使用return语句为函数返回一个值。这条语句的作用是结束函数体的执行,并把其后的表达式的值作为函数的返回值。函数的返回值可以直接赋予变量或用于表达式中,即函数调用可以出现在表达式中。
语句return也可以不带表达式,同样是结束当前函数的执行,而且会有一个返回值undefined。
实际上,在JavaScript中,无论是否出现return,每个函数都会有一个返回值,没有return的返回值也是undefined。也有时将返回undefined的函数称为过程。
6.函数的嵌套:
JavaScript中,允许在一个函数定义的函数体中出现对另一个函数的调用,这就是函数嵌套。
当一个函数调用另一个函数时,应该在调用之前先定义被调用的函数。利用函数嵌套机制可以简化问题的求解,并且使编写出来的程序结构性较好,代码容易阅读。
7.函数的递归:
函数嵌套的一种特殊情况,是在一个函数定义的函数体中出现对自身函数的直接(或间接)调用,这样的函数称为递归函数。
递归函数的引入来自于对问题的递归解法,比如阶乘和求最大公约数等。示例:
<head><title>求阶乘</title>
在递归函数中有两个必不可少的要素:
<script type="text/javascript" >
function Factorial(n)
{
var fac;
if (n<=1)
fac=1;
else
fac=n*Factorial(n-1);
return fac;
}
var n;
n=parseInt(Prompt("n=","0"));
alert(Factorial(n));
</script>
</head>
①有一个测试是否继续递归调用的条件,如例中的“if(n<=1)”;
②有一个递归调用的语句,如例中的“fac=n*factorial(n-1);”。
在递归函数中,应该是先测试,后进行递归调用,并且递归调用的参数应该是逐渐逼近递归结束的条件。示例2;
<head><title>求最大公约数</title>
<script type="text/javascript" >
function GCD(m,n)
{
var q,result;
q=m%n;
if (q==1)
result=n;
else
result=GCD(n,q);
return result;
}
var x,y;
x=parseInt(prompt("x=","0"));
y=parseInt(prompt("y=","0"));
alert("GCD("+x+","+y+")="+GCD(x,y));
</script>
</head>
8.变量的作用域:
变量的作用域是指变量起作用的范围,在该范围内的可使用该变量。变量的作用域取决于这个变量是哪一种变量。
变量一般分为全局变量和局部变量。全局变量在所有函数之外定义,其作用域范围是同一页面文件中的所有脚本;局部变量是定义在函数体内(也包括形参变量),只对该函数是可见的,而对其他函数则是不可见的。
一般而言,在编写函数的函数体时,尽量不要使用全局变量,而是将函数内需要使用的所有临时变量声明为局部变量,以避免与全局变量的冲突。
如果没有定义就使用一个变量,JavaScript将把该变量隐式声明为全局变量。
9.JavaScript的预定义函数:
1)Eval()函数:
用于计算存放在字符串中的表达式的值。例如eval("123*321/9")的返回值是4387。
2)Escape()函数:
将字符串中的非字母数字的ASCII字符转换为%AA,其中AA是该字符的ASCII码值的十六进制表示;或将非ASCII字符(如汉字)转换为%uUUUU,其中UUUU是该字符的Unicode码。例如escape("您好!Tom")转换为字符串“%u60A8%u597D21%20Tom”
3)Unescape()函数:
与Escape()函数的功能相反,其功能是将字符串中格式为“%AA”和“%uUUUU”的字符编码表示转换回原来的字符。
4)isNaN()函数:
用于确定一个变量是否是NaN,如果是则返回true,否则返回false。
5)isFinite()函数:
用于确定一个变量是否有限。如果这个变量不是NaN、负无穷或正无穷,那么将返回true,否则返回false。字符返回false。
6)parseInt()函数:
用于将字符串开头的整数分解出来,转换为整数。若字符串不是数字开头,则返回NaN。以0x开头的字符串被解释为16进制数字。
parseInt(123.45abc)返回整数123。
还可以指定基数。示例:
parseInt("1010",2); //二进制转换
parseInt("777",8); //八进制转换
parseInt("6AE",16); //十六进制转换
7)parseFloat()函数:
用于将字符串开头的浮点数分解出来,转换为浮点数。若字符串不是数字开头,则返回NaN。
parseFloat(123.45abc)返回浮点数123.45。
8)Number()函数:
显式转换为数字。
9)String()函数:
显式转换为字符串。
10)Boolean()函数:
将一个对象转换成逻辑值,返回值取决于参数的数据类型和值。示例:
输入值 | 范例 | 返回值 |
0 | Boolean(0) | false |
NaN | Boolean(NaN) | false |
非0数字 | Boolean(4) | true |
空字符串 | Boolean("") | false |
非空字符串 | Boolean("7") | true |
null | Boolean(null) | false |
undefined | Boolean(undefined) | false |
Object类的实例 | Boolean(new Object()) | true |
无参数 | Boolean() | false |
11)encodeURI()函数:
将文本字符串编码为一个有效的统一资源标识符URI。
12)decodeURI()函数:
13)encodeURIComponent()函数:
如果要向服务器发送数据,最好使用encodeURIComponent()函数转义要发送的数据,特别是用户输入的数据作为请求参数发送。因为用户输入的数据可能包含非法字符,如果不加以转义,就会发生混乱。
14)decodeURIComponent()函数: