JS第五次笔记

114 阅读3分钟

1.数组排序

数组.sort()方法可以排序
数组.sort()会修改原数组

image.png
function():函数 a,b参数可以用不同变量字母代替

算法可视化网站:visualgo.net/zh/sorting

2.选择排序

选择排序原理:就是从第一个数开始,与后面的所有数相比较,找出最小(最大)的数,放在第一个位置(以此类推)

image.png

image.png

3.函数

(1)函数:是可以被重复使用的代码块
(2)作用:函数可以把具有相同或相似逻辑的代码“封装”起来,怎么做的优势是有利于代码复用

image.png

(3)函数传参

image.png
注意:在JS中,形参和实参的个数可以不一样
<1> 若形参过多:会自动填上undefined
<2> 若实参过多:多余的实参会被忽略

image.png

4.逻辑中断(逻辑短路):存在于逻辑运算符&&和||中,左边如果满足一定条件会中断代码执行,也称为逻辑短路

(1)false&&anything //逻辑与:左边false则中断,如果左边为true,则返回右边代码的值
(2)true||anything //逻辑或:左边true则中断,如果左边为false,则返回右边代码的值

5.默认参数:

image.png

6.函数返回值return:

返回值:把处理结果返回给调用者

image.png

7.作用域:

image.png
(1)变量的访问原则:在能够访问到的情况下先局部,局部没有再全局。即 “就近原则”
(2)特殊: 若在函数内容里,没有声明直接赋值,则这个变量变成了 隐式全局变量 如下图:

image.png

//作用域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)函数分为:匿名函数具名函数

image.png

(2)函数表达式: 将匿名函数赋值给一个变量,并且通过变量名称进行调用 我们将这个称为函数表达式

<1>web api阶段会使用
<2>函数表达式必须先定义,后使用
<3>函数的实参和形参使用方法和具名函数一样
<4>函数表达式和函数声明的区别:函数声明的调用可以在任意位置 但函数表达式就相当于变量,必须先定义后调用

let fn =function(){}
(3)立即执行函数(IIFE)

<1>注意:立即执行函数后面或者前面如果有代码,一定要在立即执行函数结束或者开始的位置写分号“;”(若不加,则会把前后代码放在一起执行,会报错) <2>作用:避免全局变量污染

// 语法:
//方式一
    (function () { console.log(11) })();
    //方式二
    (function () { console.log() }());