09002 PHP学习第二天总结 – 恵玩科技

昨日回顾

流程控制-〉分支结构-〉if语句

if( 条件1 )

{

//语句块1

}

else  if( 条件2 )

{

//语句块2

}

else  if( 条件3 )

{

//语句块3

}

。。。。。。。。。。。。。。。。

else

{

//else 语句块

}

 

流程控制-〉分支结构-〉switch语句

switch ( 一个变量或一个表达式 )

{

case  值1:

//语句块1

break;

case  值2:

//语句块2

break;

…………………………….

default:

//default 语句块

}

流程控制-〉循环结构-〉while语句

【循环变量初始化】

while (【循环变量条件判断】 )

{

//循环语句块

【循环变量值的改变】

}

流程控制-〉循环结构-〉do while语句

【循环变量初始化】

do

{

//循环语句块

【循环变量值的改变】

} while (【循环变量条件判断】 );

流程控制-〉循环结构-〉for语句

for (【循环变量初始化】 ; 【循环变量条件判断】 ; 【循环变量值的改变】 )

{

 

 

//循环语句块

 

}

 

函数初步

函数就是一段独立的封闭的能“自动”运行的代码块。

一个函数一般是为了某个特定的独立的任务,并且该任务通常是“需要反复执行”

parseInt(1.2) è 1    parseInt(1.8) è 1   parseInt(1.2118)  è  1

 

函数的定义形式:

function 函数名(【形式参数1】,【形式参数2】,【形式参数3】 …….. )

{

//函数体(语句块)

【return 某值;】                  //return语句可以没有。如果没有return,表示该函数没有返回值。

}

 

函数的调用形式:

函数名(【实际参数1】,【实际参数2】,【实际参数3】 …….. )

 

函数进一步说明:

  • 函数定义的时候,形式参数只能是一个“形式名”,即是一个虚的名字(变量),而不能是一个实际值
  • 函数调用的时候,实际参数只能是一个“实际值”,该值可以是一个“直接值”也可以是一个有值的变量。
  • 函数调用的时候,实际参数的值会按顺序依次传递到形式参数对应顺序上的那个变量中去。
  • 函数调用的时候,传完所有参数之后,才开始执行函数体内的所有语句。
    1. 执行过程中,如果碰到return语句,则函数立即结束,并返回到调用的位置
    2. 如果没有碰到return语句,则函数中语句按正常的逻辑顺序执行完之后会返回到调用的位置。

 

函数的参数:

函数的参数可以有0个或多个,根据实际函数的功能需要我们自己来设定。

函数的返回值:

函数可以有返回值,也可以没有返回值。一个函数有没有(需不需要)返回值,没有特定规律,也是要根据实际函数个功能需求来决定。

有返回值举例:已知半径算圆面积,已知两个直角边,算对应斜边,已知月薪,算个人所得税。

有返回值一定要使用return 后面加一个“值”。

无返回值举例:给出一个初始n值,输出n层倒金字塔。

 

一个函数如果有返回值,则通常调用函数的时候需要“充分利用”该值:给别人赋值或直接输出。

var v1 = 函数名((实际参数列表) + 5;

document.write( 函数名((实际参数列表)  );

alert (函数名((实际参数列表) )

一个函数如果没有返回值,则不可以参与运算或输出,通常其调用就只能是这样:

函数名(实际参数列表);

 

return 和 break的区别:

return用于函数中,结束函数。除此之外,return还可以返回数据(值)

break用于循环中,结束循环。break没有返回数据的能力。但break也可以用switch。

 

变量的作用域

变量的作用域就是指一个变量在哪里可以用,在哪里不可以用的问题。

变量的作用域分为:

全局作用域:在整个脚步范围内都可以使用(即函数内和函数外都可以使用)。

局部作用域:只在定义该变量的函数内部可以使用。

两个作用域范围的变量:

全局变量:具有全局作用域的变量称为全局变量。

局部变量:具有局部作用域的变量称为局部变量。

 

变量定义的4种形式:

定义变量方式1:函数外使用var明确定义

定义变量方式2:函数外不使用var隐含定义(不推荐)

定义变量方式3:函数内使用var明确定义                          ——只有这一种形式是局部变量

定义变量方式4:函数内不使用var隐含定义(不推荐)

 

变量的作用域只受函数的界限所影响——不象其他有些语言,受流程控制结构范围的影响。

 

js系统内部函数

parseInt( n ):  将参数n 转换为整数。

parseInt ( 3 ) è 3;

parseInt ( 3.7 ) è 3;

parseInt ( “3” ) è 3;

parseInt ( “3.7” ) è 3;

parseInt ( “3abc” ) è 3;

parseInt ( “3.7abc” ) è 3;

parseInt ( “abc3” ) è NaN;

parseInt ( “abcd” ) è NaN;

NaN:  是“Not a Number”的缩写。含义是“非数字”。NaN是一个“数字”(number类型)

NaN跟我们前面学过的其他“系统内部固定值”是同类事物,比如true,false,null, undefined

 

parsefloat( n ):  将参数n 转换为小数(浮点数)。

parsefloat ( 3 ) è 3;

parsefloat ( 3.7 ) è 3.7;

parsefloat ( “3” ) è 3;

parsefloat ( “3.7” ) è 3.7;

parsefloat ( “3abc” ) è 3;

parsefloat ( “3.7abc” ) è 3.7;

parsefloat ( “abc3” ) è NaN;

parsefloat ( “abcd” ) è NaN;

 

Number( n ):  将参数n 转换为数字(浮点数)。

Number ( 3 ) è 3;

Number ( 3.7 ) è 3.7;

Number ( “3” ) è 3;

Number ( “3.7” ) è 3.7;

Number ( “3abc” ) è NaN;

Number ( “3.7abc” ) è NaN;

Number ( “abc3” ) è NaN;

Number ( “abcd” ) è NaN;

 

isNaN( n )      :判断参数 n 是否为"非数字",如果是“非数字”,则返回true,否则返回false

isNaN ( 3 ) è false;

isNaN ( 3.7 ) è false;

isNaN ( “3” ) è false;

isNaN ( “3.7” ) è false;

isNaN ( “3abc” ) è true;

isNaN ( “3.7abc” ) è true;

isNaN ( “abc3” ) è true;

isNaN ( “abcd” ) è true;

 

eval ( n ):   执行参数 n 所代表的语句。n应该是一个字符串。

var v1 = 5;

var n = “v1++”;

eval ( n );

 

字符串对象

var str1 = “abcdefg”;        //也可以写成: var str1 = ‘abcdefg’;

var str2 = new String(“abcdefg”);    //这其实跟前面那个字符没有什么区别。

什么是对象:

var myDreamGirl = {

name: “小花”,

若干方法
若干属性

age:18,

edu:”大学”,

sex: “女”,

zuofan: function () { “做饭!” },

xiyi: function () { “洗衣!” }

}

var v1 = myDreamGirl.age;     //18

myDreamGirl.zuofan();             //含义:我的梦中女孩正在做饭。。。。

str1或str2都可以认为是“字符串”对象,他们都具有一定的属性和方法:

字符串属性:

length:表示该字符串的长度(即字符的个数)

var len = str1.length;        //获得str1的长度。

 

字符串方法:

  • charAt( n ); //n是一个不小于0的数字,表示获取str1中在位置n上的那个字符。(字符位置从0开始算起)
  • charCodeAt( n ); //n同上 。取得str1种位置n上个字符的“编码”
  • toLowerCase(); //将str1转换为小写(西方文字有效)
  • toUpperCase(); //将str1转换为大写(西方文字有效)
  • substr( n, len); //从str1的位置n处开始取出len个字符。
    • 参数len可以省略,如果省略,表示从位置n开始一直到最后。
  • substring( n, m); //从str1的位置n处开始取出字符,直到位置m(不含m本身)。
  • replace( s1, s2 ); //将str1中的第一个s1字符替换为s2
  • indexOf( s1 ); //从str1中从前往后找 s1这个字符串的位置,如果找到,结果就是该位置,如果没有找到,结果是-1
  • lastIndexOf( s1 ); //从str1中从后往前找 s1这个字符串的位置,如果找到,结果就是该位置,如果没有找到,结果是-1

 

 

 

 

 

 

 

 

打赏作者