您的位置:首页 > Web前端 > JavaScript

【知识整理】javascript基础语法总结(3)——函数

2016-09-21 14:28 776 查看
一.函数:封装一项任务的步骤清单的代码段,再起一个任务名

1)函数是一个引用类型的对象

2)对象:内存中同时存储多个值得空间

3)声明函数法1:
function 任务名([参数变量列表]){
步骤清单代码段
[return 返回值]
}//整体(函数名+函数定义)提前
声明函数法2:
var 函数名=function(参数){函数体;return 返回值}//函数定义不会被提前,仅函数名提前



4)调用函数:函数名([参数值列表]);(函数只有被调用时,才会执行; 函数可被反复调用)

5)参数变量:专门接收方法执行所必须的数据的变量(参数让方法变的更灵活,调用时,按照参数定义的个数和顺序传入)

6)内存中函数生命周期:

(1)定义时:将函数直接封装在一个对象中保存——函数对象;(函数名,其实是指向函数对象的一个变量)

(2)调用时:在执行环境中增加一个当前函数的执行环境对象,才会逐行读取并执行函数的内容

(3)调用后:函数的执行环境弹出,活动对象被释放。(活动对象:专门保存函数的局部变量的存储空间)

7)作用域:一个变量的可用范围。(本质其实是一个存储多个变量的对象)

(1)全局作用域:专门保存全局变量的对象

(2)函数作用域:专门保存函数内部的局部变量的对象

(3)局部变量(只在函数调用时的函数内部才可使用):1. 参数变量(形参) 2. 在函数内使用var声明的变量

(4)全局变量:在任何时候,任何位置都可被访问

8)返回值:函数调用的执行结果(不是所有函数都有,根据需要设置有无返回值)

(1)定义返回值:在函数定义结尾:return 返回值;(返回值只能返回一个值,不能返回多个)

(2)获得返回值:调用时:var a=函数名(xxx);(变量a中保存了函数的返回值);

9)按值传递:两变量间赋值或向函数中传递参数时,都是将原变量中的值复制一个副本给对方,修改一方,另一方不受影响

例1:

var a=10;//按值传递:原始类型的值
var b=a;//变量中的值复制给对方
a++;
console.log(b);//10
例2:
var my=["包","包","包","包","包"];//按值传递:引用类型的对象
var lp=my;//按值传递,将变量中的地址复制给对方;
lp[0]="";
console.log(String(my));// ",包,包,包,包"
my[1]="";
console.log(String(lp));//",,包,包,包"


10)函数声明提前:在正式执行程序前,都会先预读所有var声明的变量和function声明的函数,集中到当前作用域的顶部集中声明,而赋值留在原地二.全局函数:ES标准中规定的,浏览器厂商已经实现的,不需要任何对象即可直接调用的函数
1)全局函数列表:



2)编码解码:

(1)encodeURI: 对包含多字节字符的url字符串编码为单字节字符组成(只能编码解码多字节,保留字无法编码)

(2)decodeURI: 将encodeURI编码后的字符串,解码为原文

(3)eval: 专门执行字符串格式(string格式)的js语句,还可计算字符串格式的表达式的值。三.分支结构:根据不同的条件,执行不同的代码

1)一个条件,一件事,满足条件就做,不满足就不做

(1)如果操作简单,利用短路:条件&&(操作1,操作2,...);操作可以用逗号分开写多个。

(2)如果操作复杂:if( 条件 ) { 操作代码段 }(如果满足条件,就执行操作)

2)一个条件,两件事,满足条件做第一件,不满足做另一件

(1) 如果操作简单:三目:(条件,三元)运算。操作1:操作2;

(2) 如果操作复杂:

if(条件){
满足才执行的代码
}else{
不满足才执行的代码
}
3)多个条件,多件事,多选一执行,可一件都不执行

(1) 如果操作简单:三目:
条件1?操作1:
条件2?操作2:
...?...  :
默认操作; //不能省略


例:
function getLevel(score){
alert(score<0||score>100?"无效成绩":
score>=90?"A":
score>=80?"B":
score>=60?"C":
"D")
}
(2)如果操作复杂
if(条件1){
操作1;
}else if(条件2){
操作2;
}else if(...){
...;
}else{
以上条件都不满足,则执行的默认操作
}
注:1、最后的else可省略,一旦所有条件都不满足,则什么都不做。

2、条件可以是任意关系运算或逻辑运算,只要返回true和false的函数或表达式,都可当条件用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript js w3c 函数 web