栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

js3day(数组操作,js冒泡排序,函数,调试窗口,作用域及作用域链,匿名函数,对象,Math对象)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

js3day(数组操作,js冒泡排序,函数,调试窗口,作用域及作用域链,匿名函数,对象,Math对象)

文章目录
    • 数组操作
      • 数组元素的增加
      • 数组元素的删除
    • 冒泡排序
    • 函数
      • 返回多个值
      • argument伪数组
      • 也可以像python一样设置个默认的实参
    • 调试
    • 作用域
    • 作用域链
    • 匿名函数
      • 立即执行函数
    • 时间转换示例
    • 对象:
      • 对象的增删改查
      • 遍历对象:
    • Math内置对象
    • 学生信息表案例
    • 存储方式

数组操作

数组元素的增加

数组.push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长度

        //筛选数组  push
        let arr1 = [2, 23, 124, 56, 78, 9, 7, 6, 5, 4, 3]
        let new_arr = []
        for (let i = 0; i < arr1.length; i++) {
            if (arr1[i] < 10) {
                new_arr.push(arr1[i])    //push这句话有返回值,返回当前新数组的长度
            }
        }
        alert(`${new_arr}`)


arr.unshift(新增的内容) 方法将一个或多个元素添加到数组的开头,并返回该数组的新长度

        // 筛选数组 unshift
        let arr1 = [2, 23, 124, 56, 78, 9, 7, 6, 5, 4, 3]
        arr1.unshift(0, 1)
        alert(arr1)   //  0,1,2,23,124,56,78,9,7,6,5,4,3
数组元素的删除

数组. pop() 方法从数组中删除最后一个元素,并返回该元素的值

        let arr1 = [1, 2, 3, 4, 5]
        arr1.pop()
        alert(arr1)   // 1,2,3,4

数组. shift() 方法从数组中删除第一个元素,并返回该元素的值

        let arr1 = [1, 2, 3, 4, 5]
        arr1.shift()
        alert(arr1)   // 2,3,4,5

数组. splice() 方法 删除指定个数的元素,返回删除的元素组成的数组

        let arr1 = [1, 2, 3, 4, 5]
        arr1.splice(2, 1)
        alert(arr1)   //1,2,4,5
        let arr1 = [1, 2, 3, 4, 5]
        arr1.splice(2)  //默认删除start位置及其之后的所有元素
        alert(arr1)   //1,2
冒泡排序
    
函数 返回多个值
    
argument伪数组
        function fn() {
            console.log(arguments)
            let sum = 0
            for (let i = 0; i < arguments.length; i++) {
                sum += arguments[i]
            }
            alert(sum)
        }
        fn(1, 2, 34)   //alert(37)

可以看出,实参个数大于形参,是能运行,实参个数小于形参返回NaN。

也可以像python一样设置个默认的实参
        function fn(x = 0, y = 1) {   //默认参数是x=0,y=1
            alert(x + y)
        }
        fn(3, 5)   //8     
        fn()   //1
调试

作用域

全局作用域 局部作用域 块级作用域分别对应下面的相应变量

注意点(今天都忘了):
如果函数内部或者块级作用域内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐
但是有一种情况,函数内部的形参可以看做是局部变量。

作用域链

采取就近原则的方式来查找变量最终的值

    function f1() {
        let num = 123
        function f2() {
            console.log(num)
        }
        f2()
    }
    let num = 456
    f1()   //控制台输出123
匿名函数

立即执行函数

场景介绍: 避免全局变量之间的污染
语法:

        (function () {alert(`直接显示我了`) } ) ()
            (function () { alert(`直接显示你了`) } () )

本质:其实通过后面的()已经调用了
注意: 多个立即执行函数要用 ; 隔开,要不然会报错(没加也没报错~~)

时间转换示例
    

对象: 对象的增删改查

      let goods = {
            //属性
            name: '逮虾户',
            age: 18,
            address: "港珠澳大桥洞下",
            // 方法
            sing: function () {
                document.write('青春不常在,抓紧谈恋爱
') } } // 调用属性 document.write(goods.name + "
") //逮虾户 document.write(goods['age'] + "
") //18 // 调用方法 goods.sing() //青春不常在,抓紧谈恋爱 //从外部增加对象的方法 goods.run = function () { document.write('记得每天跑个五公里!
') } goods.run() //记得每天跑个五公里! //从外部增加属性的方法 goods.skill = "跨越山和大海" document.write(goods['skill'] + "
") //跨越山和大海
遍历对象:

        let obj = {
            uname: 'andy ', age: 18,
            sex: '男'
        }
        for (let k in obj) {
            document.write(k + 't') // 打印属性名
            document.write(`${obj[k]} `)// 打印属性值
            document.write(`${obj.k}  
`)// undefined 不可行,除非有k这种属性名 }
Math内置对象

Math.random() 简记:左闭右开区间,括号里面不填数字!

Math.random()     //一个浮点型伪随机数字,在0(包括0)和1(不包括)之间   
Math.ceil(1.5)     //2 		天花板,向上取整
Math.floor(2.4)     //2 		地板,向下取整
Math.round(-1.5) 	// -1  		函数返回一个数字四舍五入后最接近的整数。
Math.round(2.5) 	// 3  		函数返回一个数字四舍五入后最接近的整数。
Math.pow(8, 2) // 64		返回基数(base)的指数(exponent)次幂
  • 如何生成0-10的随机整数呢?
Math.floor(Math.random()*(11))
Math.floor(Math.random() * (10 + 1))
  • 如何生成5-10的随机整数?
Math.floor(Math.random() * (5 + 1)) + 5
  • 如何生成N-M之间的随机整数
Math.floor(Math.random() * (M - N + 1)) + N
//封装   随机数 min到max之间
 function getRandom(min, max) {
     return Math.floor(Math.random() * (max - min + 1)) + min
 }
学生信息表案例




    
    
    
    Document
    




    



存储方式

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。

  • 值类型:简单数据类型/基本数据类型,在存储时变量中存储的是值本身,因此叫做值类型
    string ,number,boolean,undefined,null
  • 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型
    通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等
        //复杂数据类型
        let obj = {
            uname: 'andy ', age: 18,
            sex: '男'
        }
        let obj2 = obj;
        obj2.age = 20;
        alert(`${obj.age}, ${obj2.age}`)    //20,20
        //简单数据类型
        let num1 = 30
        let num2 = num1
        num2 = 10
        alert(`${num2}, ${num1}`)   //10, 30

简记:简单数据类型值存储,复杂数据类型按地址存储

1、栈(操作系统):由操作系统自动分配释放存放函数的参数值、局部变量的值等。其操作方式类似于数据结构中
的栈;
简单数据类型存放到栈里面
2、堆(操作系统):存储复杂类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收。
引用数据类型存放到堆里面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/988239.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号