1.数组排序
数组.sort()方法可以排序
数组.sort()会修改原数组
function():函数
a,b参数可以用不同变量字母代替
算法可视化网站:visualgo.net/zh/sorting
2.选择排序
选择排序原理:就是从第一个数开始,与后面的所有数相比较,找出最小(最大)的数,放在第一个位置(以此类推)
3.函数
(1)函数:是可以被重复使用的代码块
(2)作用:函数可以把具有相同或相似逻辑的代码“封装”起来,怎么做的优势是有利于代码复用
(3)函数传参
注意:在JS中,形参和实参的个数可以不一样
<1> 若形参过多:会自动填上undefined
<2> 若实参过多:多余的实参会被忽略
4.逻辑中断(逻辑短路):存在于逻辑运算符&&和||中,左边如果满足一定条件会中断代码执行,也称为逻辑短路
(1)false&&anything //逻辑与:左边false则中断,如果左边为true,则返回右边代码的值
(2)true||anything //逻辑或:左边true则中断,如果左边为false,则返回右边代码的值
5.默认参数:
6.函数返回值return:
返回值:把处理结果返回给调用者
7.作用域:
(1)变量的访问原则:在能够访问到的情况下先局部,局部没有再全局。即 “就近原则”
(2)特殊: 若在函数内容里,没有声明直接赋值,则这个变量变成了 隐式全局变量 如下图:
//作用域test1
function f1(){
let num =123
function f2(){
console.log(num)
//输出123:先访问局部,没变量 再跳至上一级(f1())
}
f2()
}
let num = 456
f1()
//作用域test2
function f1() {
let num = 123
function f2() {
let num = 0
console.log(num)
//输出0: 就近原则
}
f2()
}
let num = 456
f1()
//作用域test3
//先执行最外层函数调用 再进入函数内部
let a = 1
function fn1() {//2.进入到函数内部
let a = 2
let b = '22'
fn2()//3.调用fn2()
function fn2() {//4.进入到函数内部
let a = 3
fn3()//5.调用fn3()
function fn3() {//6.进入到函数内部
let a = 4
console.log(a)// 7. 输出a(由内向外查找值)最终输出数字4
console.log(b)//8.输出b(由内向外查找值)最终输出字符串'22'
}
}
}
fn1()//1.调用f1()
8.匿名函数:
(1)函数分为:匿名函数 和 具名函数
(2)函数表达式: 将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个称为函数表达式
<1>web api阶段会使用
<2>函数表达式必须先定义,后使用
<3>函数的实参和形参使用方法和具名函数一样
<4>函数表达式和函数声明的区别:函数声明的调用可以在任意位置 ; 但函数表达式就相当于变量,必须先定义后调用
let fn =function(){}
(3)立即执行函数(IIFE)
<1>注意:立即执行函数后面或者前面如果有代码,一定要在立即执行函数结束或者开始的位置写分号“;”(若不加,则会把前后代码放在一起执行,会报错) <2>作用:避免全局变量污染
// 语法:
//方式一
(function () { console.log(11) })();
//方式二
(function () { console.log() }());