1、函数
指的是为一个任务进行封装在一个代码块中。
(1)函数使用:声明、定义和调用
function 函数名([参数变量列表]){
函数体:包含任务的步骤清单(代码块)
[return 返回值]
}
如何调用:[var 返回值] = 函数名([参数值列表]);
函数只有调用时才执行(反复调用,反复执行)
2、变量作用域:一个变量的可用范围
(1)JS中有两种作用域——
a、全局作用域:一个变量可以在程序的任何位置被访问
b、函数作用域:一个变量仅在函数调用时,内部被访问
(2)JS中有两种变量——
a、全局变量:定义在全局作用域中的变量 又分为2种:
1.直接在任何函数外声明的变量
全局变量都属于window——全局对象
2.无论在任何位置,为从未声明过的变量赋值时,会自动在全局创建同名全局变量
b、局部变量:定义在函数作用域中的变量,又分为2种:
1.在函数定义内部声明的变量
2.参数变量天生就是局部变量
总结:(1)函数其实是引用类型的对象,
(2)函数名是指向函数对象的变量。
3、函数
(1)声明提前:在程序执行前或函数被调用前
原理:将var声明的变量和function声明的函数,提前到当前作用域的顶部集中创建。
强调——仅声明提前,赋值留在原地
(2)按值传参
原理:js中无论变量间赋值或使用变量传递参数时,都是将变量中的值,赋值一个副本给对方
程序结构分为3大类
a、顺序:程序默认从上到下逐行换行
b、分支:根据条件判断的结果,有选择的执行不同代码段
c、循环:程序可以反复执行同一代码段,到临界时退出
4、分支结构
需求分析——IPO(Input Process Output)
以一个案例作为分析——
·编写一个收银柜台收款程序,
·根据商品单价、购买数量以及收款金额计算并输出应收金额和找零
分析:
·定义输入——单价、数量、金额
·定义输出——应收金额、找零
·设计数据结构——多组表示单价和购买数量的变量
Input:price、count、money
Output:total、change
Process:total = price * count
change = money - total
分支结构 VS 三目/短路
如果只是返回值——三目/短路
如果操作复杂——分支结构
(1)if-else
(2)switch-case结构:根据不同的条件执行不同的代码段
原理——用switch中的表达式的值和case中的值做“全等”比较
知识点1:break
它是停止当前结构的执行,并跳出当前结构
知识点2:switch VS else if
若“条件是全等比较”时,首选“switch-case”
若需要灵活定义条件时,需要使用“else if”
5、循环结构(3种)
让程序反复执行一段代码段,达到临界条件,停止。
3要素——循环条件、循环变量、循环体
(1)while
语法:
var 循环变量 = 初值;
while(循环条件){
循环体;
迭代变化循环变量;
}
a、自然退出:不满足循环条件时,自动退出循环
b、手动退出:程序员在循环体使用break强行退出循环
(2)do-while循环
语法:
var 循环变量 = 初值;
do{
循环体;
迭代变化循环变量;
}while(循环变量);
总结:while和do-while区别
当第一次条件满足时,while、do-while完全相同;
当第一次条件不满足时。
do-while:至少会执行一次
while:一次都不执行
注意——当条件第一次都不满足时,do-while也会执行一次。
js中没有块级作用域,分支/循环结构出了结构照样使用。
(3)for循环
语法:
var 循环变量 = 初值;
for(循环变量;循环体判断;迭代变化循环变量;)
){
循环体;
}