【千锋前端】day04 JavaScript-函数_千锋前端JavaScript全套教程_JS零基础完美入门到项目实战

视频地址:【千锋前端JavaScript全套教程_JS零基础完美入门到项目实战】 https://www.bilibili.com/video/BV1W54y1J7Ed/?share_source=copy_web&vd_source=b1cb921b73fe3808550eaf2224d1c155

目录

4、函数

4.1 函数

4.2 递归函数

4.3 作用域

5、对象和数组数据类型

5.1 对象数据类型

5.2 对象的操作

5.2.1 增

5.2.2 删

5.2.3 改

5.2.4 查

5.3 数组数据类型

5.4 数组的操作

5.5 数组的遍历

5.6 冒泡排序

5.7 选择排序


4、函数

4.1 函数

定义函数阶段

调用函数阶段

语法:函数名()

    <script>
        function fn() {
            console.log('明天不下雨!')
        }
        fn()

    </script>

函数返回值

注意形参和实参的区别

4.2 递归函数

一个函数调用它自身,此为递归

要设置折返点

求阶乘

    <script>
        function fn(n) {
            if (n == 1) {
                return 1
            }
            return n * fn(n-1) 
        }
        // fn(100)
        console.log(fn(5))
  
    </script>

案例:斐波那契数列

4.3 作用域

作用域:一个变量可以在什么范围内使用

  1. 范围
    1. 全局作用域
    2. 私有作用域
  2. 使用
    1. 定义
    2. 访问 自己有就用自己的,自己没有用父级的,全局都没有,就报错
    3. 赋值  自己有给自己的赋值,自己没有给父级的赋值,全局都没有的话,就定义为全局的并且赋值

5、对象和数组数据类型

5.1 对象数据类型

引用数据类型

<script>
    var obj = { hair: '没招'}

</script>

hair对应键值(key),‘没招’对应值,value。此为一个键值对。

对象就是一个键值对的集合,一个对象可以放很多个键值对。中间使用逗号分隔开。

对象内的值可以是任何数据类型,

举例

;    <script>
        // 创建一个对象
        var obj = {
            a: 100,
            b: 50,
            c: 'hi'
        }
    
    </script>

5.2 对象的操作

5.2.1 增

给对象增加一个键值对

方式二,中括号里写的是字符串形式

    <script>
        // 创建一个对象
        var obj = {
            a: 100,
            b: 50,
            c: 'hi'
        }
        // 方式一
        obj.name = 'zhang'
        // 方式二
        obj['gender'] = 'female'
        console.log(obj)
        
    </script>

5.2.2 删

给对象删去一个键值对

    <script>
        // 创建一个对象
        var obj = {
            a: 100,
            b: 50,
            c: 'hi'
        }
        // 方式一
        obj.name = 'zhang'
        // 方式二
        obj['gender'] = 'female'
        // console.log(obj)

        // 删除一个键值对
        delete obj.name
        // 方法二
        delete obj['gender']
        console.log(obj)
        
    </script>

5.2.3 改

修改对象内某个键值对的值

与增加键值对的语法一致,如果没有这个键key,那么就增加这个键值对,如果有这个键,就修改这个键对应的值。

    <script>
        // 创建一个对象
        var obj = {
            a: 100,
            b: 50,
            c: 'hi'
        }
        // 方式一
        obj.name = 'zhang'
        // 方式二
        obj['gender'] = 'female'
        // console.log(obj)

        // 删除一个键值对
        delete obj.name
        // 方法二
        delete obj['gender']

        // 修改一个键值对的值
        // 方式一
        obj.name = 'zhang'
        // 方式二
        obj['a'] = 1000
        console.log(obj)
        
    </script>

5.2.4 查

访问对象内某个键保存的值

    <script>
        // 创建一个对象
        var obj = {
            a: 100,
            b: 50,
            c: 'hi'
        }
        // 方式一
        obj.name = 'zhang'
        // 方式二
        obj['gender'] = 'female'
        // console.log(obj)

        // 删除一个键值对
        delete obj.name
        // 方法二
        delete obj['gender']

        // 修改一个键值对的值
        // 方式一
        obj.name = 'zhang'
        // 方式二
        obj['a'] = 1000
        console.log(obj)

        // 查
        // 语法一
        console.log(obj.a)
        // 语法二
        console.log(obj['name'])
        
    </script>

运行结果

5.3 数组数据类型

数组:有序 数据 的集合

var array = [100, true, 'abc'] ,索引从0开始

5.4 数组的操作

  • 数组的操作
    • 长度的操作
      • 获取长度  console.log(数组.length)
      • 设置长度  数组.length = 自己设置的长度
    • 数据的操作
      • 获取数据  console.log(数组[想获取第几个数据,索引])
      • 设置数据 数组名[2] = 自己设置的数据

5.5 数组的遍历

很简单,不写笔记了。

5.6 冒泡排序

直接做个力扣题

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var sortArray = function(nums) {
    var temp = 0
    for(i = 0; i < nums.length - 1; i++) {
        for(j = 0; j < nums.length - 1 - i; j++) {
            if(nums[j] > nums[j+1]) {
                temp = nums[j]
                nums[j] = nums[j + 1]
                nums[j + 1] = temp
            }
        }
    }
    return nums
};

5.7 选择排序

思路忘记了

快速地学一遍

先写里面每一次的交换,最后写外面n轮的交换

/**
 * @param {number[]} nums
 * @return {number[]}
 */
var sortArray = function(nums) {
    var temp = 0
    var min
    for(i = 0; i < nums.length - 1; i++) {
        min = i
        for(j = i + 1; j< nums.length; j++) {
            if (nums[min] > nums[j]) {
                min = j
            }
        }
        if (min != i) {// 这里可以直接交换索引位置的元素,加上判断也是可以的
            temp = nums[i]
            nums[i] = nums[min]
            nums[min] = temp
        }
    }
    return nums
};

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值