ECMAScript 练习题

本文包含一系列基于ECMAScript的编程练习题,涵盖了数组操作、构造函数、字符串处理、函数应用等多个方面,旨在提升前端开发者对ECMAScript的理解和应用能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.面包管理器

        function bread() {
            var num = 10;
            var operation = {
                setNum: function (n) {
                    num += n;
                    console.log(num);
                },
                sellnum: function () {
                    num--;
                    console.log(num);
                }
            }
            return operation;
        }
        var text = bread();
        text.setNum(20);
        text.sellnum();
        text.sellnum();
        text.sellnum();
        text.sellnum();
        text.setNum(10);

2. 冒泡排序

                var arr = [2, 3, 4, 5, 6, 9, 8, 7, 1];
                function maopao() {
                    // var len = arguments.length;
                    //arguments的长度看的是传入参数列表的个数,所以我们传入数组的时候            maopao(1, 2, 3, 4, 5, 6, 7, 78);这样传才能用arguments判断
                    var len = arr.length;
                    console.log(len);
                    for (var j = 0; j < len - 1; j++) {
                        var flag = true;
                        for (var i = 0; i < len - j - 1; i++) {
                            var temp;
                            if (arr[i] > arr[i + 1]) {
                                flag = false;
                                temp = arr[i];
                                arr[i] = arr[i + 1];
                                arr[i + 1] = temp;
                            }
                        }
                        if (flag) {
                            break;
                        }
                    }
        
                }
        
                maopao(arr);
                console.log(arr);

3.班级名单管理器

        一个班级,学生名字保存在一个数组里,两个方法写在函数中的一个对象中,

        第一个方法加入班级,第二个方法离开班级,

        每次加入或离开,都需要打印新的学生名单

        var arr = ['小明', '小华', '小家'];
        function classroom(arr) {
            var nameList = {
                join: function (newStudent) {
                    arr.push(newStudent);
                    console.log(arr);
                },
                leave: function (Student) {
                    var index = arr.indexOf(Student);
                    //数组的indexOf方法使用:通过元素内容找对对应元素的下标,如果找不到这个元素就返回-1
                    console.log(index);
                    arr.splice(index, 1);
                    // 数组的splice方法使用:array.splice(index,howmany,item1,.....,itemX)
                    //index  必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
                    //howmany 可选。规定应该删除多少元素。必须是数字,但可以是 "0"。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
                    console.log(arr);
                }
            };
            return nameList;
        }
        var text = classroom(arr);
        text.join('小才');
        text.leave('小菜');

4.累加器

                function add() {
                    var num = 0;
                    function addOne() {
                        num++;
                        console.log(num);
                    }
                    return addOne;
                }
        
                var text = add();
                text();
                text();
                text();
                text();
                text();
                text();
                text();

5.计算器构造函数(有错误-已经改正-在构造函数内this.arr和arr的区别)

        写一个构造函数,接收数字类型的参数,参数数量不定,完成参数相加和相乘的功能

         //自己的做法
        function Calculator() {
            this.arr = arguments;
            var sum = this.arr[0];
            var mul = this.arr[0];
            this.add = function () {
                for (var i = 1; i < this.arr.length; i++) {
                    sum += this.arr[i];
                }
                console.log(sum);
            };
            this.multiply = function () {
                for (var i = 1; i < this.arr.length; i++) {
                   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值