函数相关

83 阅读4分钟

函数

    <!-- 对于js来说,函数就是把任意一段代码放在一个盒子里面
    在我想要让这段代码执行的时候,直接执行中个盒子里面的代码就行-->

    <!--  定义函数-->
    <!-- 声明式
    function test1(){
        console.log("xxxx")
    }   
    声明式定义的函数可以先调用后,声明
    -->
<!-- 
tese1() 此处直接就调用函数


    <!--  赋值式-->
    <!-- var tese2 = function{ -->
       <!-- console.log(xxxx)
    } -->
    <!-- tese2() 一样如此先调用
    必须先定义/赋值函数,才可以调用 --> -->

关于函数的案列


// }
// fn(实参写这里)
function tese(a,b){
    var yingliao = a===1?'可乐':'雪碧'
    var  xiaochi = b===1?'薯条':'鸡米花'
    var  zhushi = "鸡腿堡"
    console.log("我是套餐A ",yingliao,xiaochi,zhushi)
}
    tese(1,1)

三目预算符

    age>=18? alert('已成年'):alert('未成年')

与swtich类似,但是比较方便,可以直接写个一个语句中个人认为比swtich好使

对象

        // var nickName,age,gendr,locati,into
                // var obj ={
        //     name: "yanjie",
        //     age : 19,
        //     location:"赣州"
        // } 
        // console.log(obj)

        // 内置构造函数

        // var obj2 = new Object()
        // console.log(obj2)

        // obj2.name = "xiaoming"
        // obj2.age = 18
        // console.log(obj2)


        var obj3 = {}
        obj3.name = "洁哥"
        obj3.age = "19"
        document.write("姓名是:"+obj3.name) //  用这样的方式查询
        
        // 改 obj3.name = xxx 前面的名称要一致才能覆盖,否则是增加
        // 删除 delete obj3.name     关键值
        // 2-增 var obj3 = {}
        //  obj3["name"] = "jege"
        // 改 obj3["name"] = "sdsdwd"
        // delete obj3["name3"]

对象的表现形式是以 {} 数组是以 [] 对象的遍历

            name : "jiege",
            age : 100,
            location: "ganzhou"
        }

// key“ : ”是前面的值,value是 : 后面的值

        for(var i in obj){
            // console.log(i)
            // 获取的是key
            // console.log(obj[i])
            // 获取value值
            document.write(i+":"+obj[i])
            document.write("<br>")
            
        

数组

        var ageArr = [12,14,15,16]
        var nameArr = ["jiege","xm","xy","zy"]
        console.log(ageArr)

        // length 可读可写


        // 内置构造函数  Array  创建数组
        
        var arr1 = new Array()
        // 创建一个空数组
        var arr10 = new Array()
        // 创建一个长度为10的数组
        var arr3 = new Array(1,2,3)
        // 创建一个有内容的数组
        arr3.length = 2
        // 改变数组的长度,从后往前减

        console.log(arr3)

        // 索引
        
        console.log(nameArr[0])
        // 改变原来数组中的元素
        nameArr[0] = "wuyanjie"
        // 若改变原来数组在[x]x大于原本数组长度,则为增长数组


        // 数组的遍历
        var arr4 = [1,2,3,4]
        // for(i = 0;i<arr4.length;i++){
        //     console.log(arr4[i])
        // }

          // 数组的复制

          var arr5 = []
            for(var i =0;i<arr4.length;i++){
                arr5[i]=arr4[i]
            }
            console.log(arr5)

            arr5[5]=10

冒泡排序法,利用数组等性质

        // var arr =[6,8,1,2,4,7]
        // var temp = arr[0]
        // arr[0] = arr[1]
        // arr[1] = temp
        // console.log(arr)

        // for (var i = 0; i < arr.length - 1; i++) {
        //     if (arr[i] > arr[i + 1]) {
        //         var temp = arr[i]
        //         arr[i] = arr[i + 1]
        //         arr[1 + 1] = temp
        //     }
        // }


        // for (m = 0; m < arr.length - 1; m++) {
        //     for (var i = 0; i < arr.length-1-m; i++) {
        //         if (arr[i] > arr[i + 1]) {
        //             var temp = arr[i]
        //             arr[i] = arr[i + 1]
        //             arr[i + 1] = temp
        //         }
        //     }
        // }
        // console.log(arr)冒泡排序


        // 选择排序

        var  arr = [44,1,2,9,10,11]
     
        // for(var i=1;i<arr.length;i++){
        //     if(arr[i]<arr[minIndex]){
        //         minIndex = i
        //     }
        // }
        // var temp = arr[0]
        // arr[0] = arr[minIndex]
        // arr[minIndex]=temp
        // console.log(arr)

        for(var m=0;m<arr.length-1;m++){
            var minIndex = m
            for(var i=1+m;i<arr.length;i++){
            if(arr[i]<arr[minIndex]){
                minIndex = i
            }
        }
           if(i!==m){
            var temp = arr[m]
            arr[m] = arr[minIndex]
            arr[minIndex] = temp
           }
        
        }
        console.log(arr)

数组的常用性质

`` var arr = [1,2,3]

    // push后面追加元素
    // 返回值 长度
//   arr.push(2)

    // pop 后面删除元素
        // 放回值是删除的元素

        // unshift 前面追加元素
        // 返回值 长度

        // shift 前面删除元素
        // 放回值前面删除的元素

        // var resunshift = arr.unshift("洁哥")
        // console.log(arr)
        // console.log("返回值",resunshift)

        // splice 删除
       
//  var ressplice = arr.splice(1,1,xxx,xxx)// 第一个1是从第一个索引开始删除,第二个是删几个元素
    // 往后面补充元素,可以加元素 如果为(0,0,xx,xx)意为,从第零个开始加元素
//  console.log("返回值",ressplice)
//     console.log(arr)

        // 增加


        // reverse 倒叙
        // var arr3 = [1,2,3,4]
        // arr3.reverse()
        // console.log(arr3)
        // 注意,假如原始数据并未按照从大到小的顺序进行排列,则倒叙也不会按照从小到大的顺序进行排列

    // sort 排序
        // var arr4 = [11,12,56,7,3]
        // arr4.sort(function(x,y){

        //     return x-y
    
        // })
        // console.log(arr4)
        // x-y为正序,x+y为逆序

        // 数组去重
        var arr7 = [22,22,24,30,27]
        var set1 = new Set(arr7)
        console.log(set1)
        // Set直接将重复的数组进行删除

        var arr8 = Array.from(set1)

        console.log(arr8)

``

数组的值改变和引用,分为改变原来的值和不改变原来的值,下组代码为不改变原来值的几个示例

        var arr2 = [4,5,6]

        // var arr3= arr1.concat(arr2,7)
        // 也可以在后面穿其他的参数,添加一个逗号后即可

        // var arr4 = arr1.concat() 可以为为新的复制方式

        // join 数组转化为字符串
        // console.log(arr3)

        // var arr = [1,2,3,4,5]

        // document.write(arr.join(""))
// slice 截取(开始索引,结束索引) 包前不包后
// (2)从第二个下标开始到最后
        // var arr3 = [ "aaa","bbb",'ccc']
        // var arr4 = arr3.slice(0,2)
        // console.log(arr3,arr4)

        // indexof
        // 返回值为 -1时候表示找不到,不存在该元素  返回值为0的时候表示存在该元素且存在多个一样的
        // (X,1)从第几个开始往后面找x元素
        // var res = arr1.indexOf(2)
        // console.log(res)

        // lastIndexOf("xxx",3)从第几个往前面找