JS基础-03
1.死循环
1.1概念:
当循环条件永远为真,就会产生死循环,一般工作中,尽量避免
1.2运用场景:
运用场景:死循环主要用于后期随机数之类的实例
1.3可以造成死循环的操作
//第一种
for(;;){
}
//第二种
for(let i=0;true;i++){
}
//第三种
while(true){
}
2.终止循环语句---掌握
2.1作用
主要用于停止循环或者跳出循环
2.2语法
break:结束当前循环,并结束后面所有循环
continue:结束当前循环,继续下一次循环,只是跳过了当前这一次的循环
3.其他相关--了解
3.1 多分支语句
switch...case
default:else---默认
switch(变量){
case 值1:
变量全等于值1的时候,执行的代码块A;
break;
case 值2:
变量全等于值1的时候,执行的代码块B;
break;
case 值3:
变量全等于值1的时候,执行的代码块C;
break;
......
default:
以上条件都不满足时,执行的代码块;
break;
}
default在最后时,default后的break可省略
switch与if之间的区别
1.switch case后面的值与变量是全等的关系
2.if 条件判断可以是一个具体的值的比较,也可是一个范围
3.2while与do.....while循环
1. while循环
while(循环条件){
循环体;
更新循环变量;
}
let i=1;
while (i<=10){
console.log(i);
i++
}
2.do...while 循环
初始循环变量;
do{
循环体;
更新循环变量;
}while(循环条件)
let i=1;
do {
console.log(i);
i++
}while(i<=10);
while循环与do...while循环之间的区别
1.do...while 不去判断,先去执行一次,之后再去进行判断
2.while 循环总是先判断然后再确定是否要执行循环体
4.函数----[重重点]
4.1概念
函数(功能,方法)就是针对代码进行封装(打包),封装的代码总是能完成指定的功能---可复用性
4.2特点
1.函数不会制动调用,需要手动调用
2.函数可以多次使用
4.3作用
1.减少代码的冗余(重复代码)
2.方便后期的维护以及更新
4.4函数的定义【重点】
分类
1.系统函数(内置函数)
2.自定义函数(自己写的函数)---重点
函数的定义方式---重点
方式一:声明式
通过关键字 function 来指定只一个函数
函数声明,必须式指定函数名
语法:
function 函数名(){
函数体----打包的代码;
}
通过函数的名字进行执行,如果多次执行,多次调用
函数名();
方式二:表达式
把一个匿名函数(没有函数名)赋值给一个变量
语法;
let/const/var 函数名=function(){
函数体----打包的代码;
}
通过函数的名字进行执行,如果多次执行,多次调用
函数名();
//1.声明式:
function fn1() {
for (let i = 0; i < 10; i++) {
console.log(i);
}
}
//2.表达式
let fn2 = function () {
for (let i = 0; i < 10; i++) {
console.log('i', i);
}
}
//函数调用
fn1();
fn2();
两种声明方式的区别----[面试题]
1.声明式:function,可以在定义函数的前面进行调用
2.表达式:let/var/const,只能在定义函数的后面调用
函数的参数---【重点】
概念:函数的参数,只是一个占位符,主要我们用来接收调用时传入的具体数据,相当于在函数的内部定义了一个局部变量
语法:
定义:
//声明式
function 函数名(形参1,形参2.....){
}
//表达式
let 函数名=function(形参1,形参2.....){
}
调用:
函数名 (实参1,实参2,.....);
//需求:使用函数的方式,实现任意两个数比较大小,输出最大值
let a = 10;
let b = 20;
if (a >= b) {
console.log(a);
} else {
console.log(b);
}
//封装
//定义函数
function fn(a, b) {
if (a >= b) {
console.log(a);
} else {
console.log(b);
}
}
//调用
fn(10, 9);
fn(-10, 100);
fn(100, 200);
//优化
function fn(a, b) {
let max=a>b? a:b;
console.log(max);
}
//需求,三个任意数比较大小,输出最大值
let a = 10, b = 20, c = 30;
if (a >= b && a >= c) {
document.write(a, '<br>');
} else if (b >= a && b >= c) {
document.write(b, '<br>');
} else if (c >= a && c >= b) {
document.write(c, '<br>');
}
//封装
function fn(a, b, c) {
if (a >= b && a >= c) {
document.write(a, '<br>');
} else if (b >= a && b >= c) {
document.write(b, '<br>');
} else if (c >= a && c >= b) {
document.write(c, '<br>');
}
}
//调用
fn(1, 2, 3);
fn(-1, -2, -3);
fn(1, -2, 30);
函数的默认值
作用:为了让程序整的执行
函数的返回值----[重难点]
概念:如果函数的执行结果需要被其他的程序使用时,函数本身不会有返回值(默认返回undefinde),需要使用时,必须使用retunrn进行执行结果抛出(返回),外部才能获取执行结果
undefined 出现的集中情况--目前接触到的
1.声明变量但是没有赋值,变量的默认值为 undefined
2.函数设置了形参,但是调用的时候没有传递进来 对应的实参,函数的形参的值为 undefined
3.函数没有设置返回值,函数的返回值默认为 undefined
语法:
function 函数名(形参){
逻辑代码块;
return 返回值;
}
注意:
1.return 只在函数值使用
2.函数值一旦遇到 return ,后面的内容就不再执行, return 一般写在函数体的最后
3. return 每次只能返回一个执行结果,如果需要一次 return 多个值,可以使用数组[]或者对象{}
4.如果需要多个 return 返回不同的结果,可以使用条件判断语句判定输出。
5.如果函数没有知名 return ,函数默认的返回值为 undefined ,如果有 return ,就以 return 的结果为准
函数封装的步骤----[重点理解]
1.根据需求,实现基本功能---难点
2.确定函数名
3.确认参数的个数
4.确认是否需要使用返回值
5.封装---函数的壳子,基本功能复制到函数体中,使用参数去替换相关变量,是否需要 return
6.调用测试
三种输出方式与return返回值的选择---拓展
三种输出方式:
1.根据题目要求,题目要求使用三种输出方式
2.如果输出内容为字符串类型,可以直接使用三种输出方式之一
3.如果已经使用 return 进行返回,需要查询结果
return 返回值:
1.如果题目要求使用 return ,结果需要被其他程序使用
2.程序中的执行结果需要被其他程序所使用,必须使用 return
5.变量作用域
5.1概念
变量的作用域表示的时变量在那个范围内生效,在那个范围内可以被访问
5.2作用
解决全局变量污染问题,变量命名空间冲突
5.3分类
1. 全局作用域----全局变量
2. 函数作用域----局部变量
3. es6块级作用域
4. 声明的时候没有写关键字,变量提升,提升为全局变量
// 全局作用域
// let a = 10;
// console.log('全局中的a', a);
// 局部作用域
function fn() {
var a = 20;
// console.log('这是函数内部的局部变量a', a);
}
fn();
// console.log(a);
// es6块级作用域
if (true) {
let c = 30;
var b = 200;
d = 300;
// console.log('这是块级作用域内的c', c);
}
console.log('b', b);
// console.log('c', c);
console.log('d', d);
声明的时候没有写关键字,变量提升,提升为全局变量
6.系统函数(内置函数)
6.1概念
js中已经定义好的函数,后期使用时,不需要再次定义,直接使用
6.2重点
string(变量)
Nunber(变量)
Boolean(变量)
parseInt(变量)
parsrFloat(变量)
isNaN(值)---主要用于判定指定的值,是不是字符串
如果是字符串---true
不是字符串---false
|