Day04-JavaScript

一.数组去重

    <script>

       // 数组去重
          var arr = [10, 2, 3, 5, 6, 4, 2, 4, 11, 21, 11, 8, 5];
          var newarr = [];
          for (var i = 0; i < arr.length; i++) {
               if (!newarr.includes(arr[i])) {
                  newarr.push(arr[i]);
              }
          }

         console.log(newarr);


      // 判断两个数组是否相同
         var arr1 = [1, 2, 3, 4, 5];
         var arr2 = [5, 4, 3, 2, 1];
         var cont = 0;
         if (arr1.length == arr2.length) {
             for (var i = 0; i < arr1.length; i++) {
                 if (arr1[i] === arr2[i]) {
                     cont++;
                 }
             }

         } else {
            console.log("不一致");
         }

         if (cont == arr1.length) {
             console.log("一致");
         } else {
             console.log("不一致");
         }

    </script>

二.创建函数

    <script>

        // function 函数名(){
        //     函数的代码
        // }

        //1.通过字面量创建函数
        //  函数传递参数
        //    形式参数    形参
            function fun(a, b) {
               var sum = a + b;
               console.log(sum);
            }

        // 调用函数
        // 实际参数 实参
        fun(1, 2);

        // 2.匿名函数
           var fun1 = function () {
               console.log("匿名函数");
           }
           fun1();

        // 3.使用构造函数创建函数
           var fun3 = new Function("a", "b", "console.log(a+b)");
           fun3(1, 2);

        // 4.自执行函数
           (function (a, b) {
               console.log(a + b);
           })(1, 2);

    </script>

三.函数的返回值

    <script>

        function fun() {
            console.log("函数");
            // 返回值
            return 0;
            // return之后的代码将不再执行
            console.log("return之后的代码");
        }

        console.log(fun());

        // 数组排序
        function sortArr(arr) {
            // 冒泡排序
            for (var i = 0; i < arr.length - 1; i++) {
                for (var j = 0; j < arr.length - 1 - i; j++) {
                    if (arr[j] > arr[j + 1]) {
                        [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
                    }
                }
                return arr;
            }
        }
        var arr1 = [1, 5, 2, 3, 6, 8, 9, 4, 7];
        sortArr(arr1);
        console.log(arr1);
        console.log(sortArr(arr1));

    </script>

四.arguments对象

    <script>

        function fun(a, b, c, d, e) {
            console.log(a);
            console.log(b);
            console.log(c);
            console.log(d);
            console.log(e);
            // 传递的参数组成的伪数组
            console.log(arguments);
        }

        fun(1, 2, 3, 4, 5);

        // 参数不固定情况下对参数的处理
        function fun2() {
            var sum = 0;
            for (var i = 0; i < arguments.length; i++) {
                sum += arguments[i];
            }
            return sum;
        }

        console.log(fun2(1, 2, 3, 4, 5, 6, 7, 8, 9));

        // 函数也是一种数据类型 function
        console.log(typeof fun2);
        // number string boolean undefined object function 

        // 函数作为参数
        function fun3() {
            console.log("函数作为参数");
        }

        function fun4(a) {
            a();
        }

        fun4(fun3);

    </script>

五.作用域

    <script>

        // 全局作用域
        // 全局变量

        var num1 = 10;
        console.log(num1);

        function fun() {
            // 局部作用域
            // 局部变量
            var num2 = 20;
            console.log(num1);
            console.log(num2);
            function fun1() {
                // var num2 = 30;
                console.log(num1);
            }
            fun1();
        }

        fun();

        // console.log(num2);

        // 作用域链:在当前作用域中没有查到值,就会向上级作用域去查,直到查到全局作用域,这么一个查找过程形成的链条就叫做**作用域链**

        function f1() {
            var num = 123;
            function f2() {
                console.log(num);
            }
            f2();
        }
        var num = 456;
        f1();

    </script>

六.预解析

    <script>

        // 变量的声明提升
        console.log(num);   // undefined
        var num;

        // 函数
        // 函数的预解析
        // 通过字面量方式创建的函数,在该作用域任何位置都能调用
        fun1();
        // 1.字面量方式创建的函数
        function fun1() {
            console.log("函数");
        }

        // 2.匿名函数
        console.log(fun2);
        fun2();
        var fun2 = function () {
            console.log("匿名函数");
        }

    </script>

七.创建对象

    <script>

        // 创建对象

        // 1.字面量法
        var person = {
            // 键:值
            name: "cxk",
            age: 18,
            gender: true,
            // 方法
            hobby: function () {
                console.log("sing,dance,basketball");
            }
        };

        console.log(person);

        // 访问对象中的属性
        console.log(person.name);
        console.log(person["name"]);
        // 访问对象中的方法
        person.hobby();
        // window.alert();

        
        // 2.new Object() 创建对象
        var person2 = new Object();
        person2.name = "张三";
        person2.age = 20;
        console.log(person2);



        // 3.构造函数创建对象
        // 普通函数
        function fun() {
            console.log("普通函数");
        }

        fun();

        // 构造函数
        function Person(name, age, gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
            this.sayHi = function () {
                console.log("hello");
            }
        }
        var person3 = new Person("小好", 19, "男");
        var person4 = new Person("小谷", 20, "女");
        console.log(person3);
        console.log(person4);

    </script>

八.this指向

    <script>

        // this 这
        // 构造函数

        function Person(name, age, gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
            this.sayHi = function () {
                console.log("hello");
                console.log(this);
            }
        }

        // 实例化的对象
        var person = new Person("小好", 18, "男");
        person.sayHi();

        // 实例化的对象
        var person2 = new Person("小谷", 20, "女");
        person2.sayHi();

        // 普通函数
        function fun() {
            console.log(this);
        }
        fun();


        // 对象方法中的this

        var obj = {
            name: 'lisi',
            hobby: function () {
                console.log(this);
            }
        }

        obj.hobby();

        // 1.构造函数 this 指向实例化对象
        // 2.普通函数 this 指向 window 
        // 3.对象方法中的 this 指向该方法所属对象

    </script>

九.new关键字

    <script>

        // new 关键字
        // 构造函数

        function Person(name, age, gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
            this.sayHi = function () {
                console.log("hello");
                console.log(this);
            }
        }

        // 实例化一个对象
        var person = new Person("zhangsan", 18, "男");

        // new操作符的作用
        // 1.创建一个空对象
        // 2.this 指向实例化对象
        // 3.通过 this 给对象添加属性和方法
        // 4.隐式返回 this

    </script>

十.遍历对象

    <script>

        var person = {
            // 键:值
            name: "cxk",
            age: 18,
            gender: true,

            // 方法
            hobby: function () {
                console.log("sing,dance,rap,basketball");
            }
        };

        console.log(person);

        // 遍历对象
        // for...in 
        for (var key in person) {
            console.log(key);
            console.log(person[key]);
        }

    </script>

十一.数组对象

    <script>

        var arr = [1, 13, 2, 45, 5, 17, 29, 56, 8];

        // sort() 数组排序
        // 参数:没有参数
        // 返回值:排序后的数组
        // 是否改变:改变

        arr.sort(function (a, b) {
            return b - a;
        })
        console.log(arr);

    </script>

十二.String对象

    <script>

        var str = " hello world ";
        var str2 = new String("ABC");
        console.log(str2);
        console.log(str2.length);
        console.log(str2[0]);

        // 字符串所有操作方法,都不会修改字符串本身

        // 1.charAt()
        console.log(str.charAt(1));

        // 2.charCodeAt()
        // A-Z 65-90 a-z 97-122
        console.log(str.charCodeAt(0));

        // 3.fromCharCode()
        console.log(String.fromCharCode(97));

        // 4.split()
        console.log(str.split(" "));

        var str3 = 'utm_source=360pcpz&utm_medium=cpt&utm_provider=partner';
        console.log(str3.split("&"));

        // search()
        console.log(str.search("llo"));

        // replace()
        console.log(str.replace("llo", "LLO"));

        console.log(str.trim());

    </script>

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值