• 自己一下午练习Js的代码


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
         This is My haha!!
        <input type="button" name="" value="test" onclick="count(0,15)">
        <script>
            /**
             * 返回数组中索引
             * @param arr
             * @param item
             * @returns {*}
             */
            function indexOf(arr, item) {
                if (Array.prototype.indexOf){
                    return arr.indexOf(item);
                } else {
                    for (var i = 0; i < arr.length; i++){
                        if (arr[i] === item){
                            return i;
                        }
                    }
                }
                return -1;
            }
    
            /**
             * 删除元素,不动原来的数组
             * @param arr
             * @param item
             */
            function remove(arr, item) {
    
                //声明一个新数组保存结果
                var a = new Array();
                //循环遍历
                for(var i=0; i < arr.length; i++){
                    //如果arr[i]不等于item,就加入数组a
                    if(arr[i] != item){
                        a.push(arr[i]);
                    }
                }
                return a;
            }
    
            /**
             * 动原来的数组,删除item
             * splice() 方法向/从数组中 添加/删除 项目,然后返回被删除的项目。
             注释:该方法会改变原始数组。
             * @param arr
             * @param item
             */
            function removeWithoutCopy(arr, item) {
    
                for(var i = 0; i < arr.length; i++){
                    if(arr[i] == item){
                        //splice方法会改变数组长度,当减掉一个元素后,后面的元素都会前移,因此需要相应减少i的值
                        arr.splice(i,1);//删除元素
                        i--;
                    }
                }
                return arr;
            }
    
            /**
             * 添加数组不 修改原来的数组
             * @param arr
             * @param item
             * @returns {Blob|ArrayBuffer|Array.<T>|string}
             */
            function append(arr, item) {
                var arr1 = arr.slice(0);//复制数组
                arr1.push(item);
                return arr1;
            }
            /**
             删除数组最后一个元素
             */
            function truncate(arr) {
                var New = arr.slice(0);//复制数组
                New.splice(arr.length-1,1);
                return New;
            }
    
            /**
             * 在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
             * @param arr
             * @param item
             * @returns {Blob|ArrayBuffer|Array.<T>|string}
             */
            function prepend(arr, item) {
                var New = arr.slice(0);//复制数组
                New.splice(0,0,item);
                return New;
            }
    
            /**
             * 链接两个数组
             * @param arr1
             * @param arr2
             * @returns {Array.<T>|string}
             */
            function concat(arr1, arr2) {
                return arr1.concat(arr2);
            }
    
            /**
             * 找出数组 arr 中重复出现过的元素,保存的时候看看b中有没有
             * @param arr
             */
            function duplicates(arr) {
                var a=arr.sort(),b=[];
                for(var i in a){
                    if(a[i]==a[i-1] && b.indexOf(a[i])==-1) b.push(a[i]);
                }
                return b;
            }//先排序,如果后一个与前一个相等且未保存,则保存。
            /**
             * 为数组 arr 中的每个元素求二次方。不要直接修改数组 arr,结果返回新的数组
             * @param arr
             */
            function square(arr) {
               /* var New = arr.slice(0);
                for(var i=0;i<New.length;i++){
                    New[i] = New[i]*New[i];
                }
                return New;*/
                /*map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
                    map() 方法按照原始数组元素顺序依次处理元素。
                    注意: map() 不会对空数组进行检测。
                    注意: map() 不会改变原始数组。*/
                return arr.map(function (item, index, array) {
                    return item*item;
                });
            }
    
            /**
             * 在数组 arr 中,查找值与 item 相等的元素出现的所有位置
             * @param arr
             * @param target
             * @returns {Array}
             */
            function findAllOccurrences(arr, target) {
                var New = [];
                for(var i=0;i<arr.length;i++){
                    if(arr[i]==target){
                        New.push(arr[i]);
                    }
                }
                return New;
            }
    
            function parse2Int(num) {
                return parseInt(num,10);
            }
            //10进制 遇到不是 数字 直接 无视
    
    
            function count(start, end) {
                //立即输出第一个值
                console.log(start++);
                var timer = setInterval(function(){
                    if(start <= end){
                        console.log(start++);
                    }else{
                        clearInterval(timer);
                    }
                },100);
                //返回一个对象
                return {
                    cancel : function(){
                        clearInterval(timer);
                    }
                };
            }
            function fizzBuzz(num) {
                if(num%3==0&&num%5==0){
                    return "fizzbuzz";
                }else if(num%3==0){
                    return "fizz";
                }else if(num%5==0){
                    return "buzz";
                }else if(num == null || typeof num != "number"){//else if(num.isNaN()||num==""){
                    return false;
                }else{
                    return num;
                }
    
            }
    
            /**
             * 函数调用
             * @param fn
             * @param arr
             * @returns {*}
             */
            function argsAsArray(fn, arr)
            {
                /*调用函数有3种方式:
                obj.func();
                func.call(obj,args);//参数列出
                func.apply(obj,[m,n......]);//参数数组*/
                return fn.apply(this,arr);
            }
    
            /**
             * 函数返回函数,函数作为参数传入
             * @param str
             * @returns {f}
             */
            function functionFunction(str) {
                var f = function(s){
                    return str+", "+s;
                }
                return f;
            }
            //前端我们还有很多不知道,比如   ----闭包
            /**
             * 创建对象
             * @param str1
             * @param str2
             */
            function createModule(str1, str2) {
                var obj = {
                    greeting:str1,
                    name:str2,
                    sayIt:function () {
                        //两个属性前面都需要加上this
                        return this.greeting+", "+this.name;
                    }
                };
                return obj;
            }
    
            /**
             *数字转字符串
             * @param num
             * @param bit
             */
            function valueAtBit(num, bit) {
                var s = num.toString(2);//数字  专为2进制字符串
                return s[s.length - bit];
            }
    
            /**
             * 字符串转数字
             * @param str
             * @returns {Number}
             */
            function base10(str) {
                var result =parseInt(str,2);
                return result;
            }
    
            /**
             * 将给定数字转换成二进制字符串。如果字符串长度不足 8 位,则在前面补 0 到满8位。
             * @param num
             */
            function convertToBinary(num) {
               var str = num.toString(2);
               var addLength = 8-str.length;
               var str0 ="";
               for(var i=0;i<addLength;i++){
                   str0+="0";
               }
               return str0+str;
            }
            /******正则表达式******/
            /**
             * 监测是否有数字
             * @param str
             * @returns {boolean}
             */
            function containsNumber(str) {
                var b = /d/;
            ///    b.
                return b.test(str);
            }
    
            /**
             * 给定字符串 str,检查其是否包含连续重复的字母(a-zA-Z),包含返回 true,否则返回 false
             * @param str
             * @returns {boolean}
             */
            function containsRepeatingLetter(str) {//   1是分组
                return /([a-zA-Z])1/.test(str);
            }
    
            /**
             *首先确定元音集合[a,e,i,o,u],然后是以元音结尾,加上$,最后通配大小写,加上i。因此正则表达式为:/[a,e,i,o,u]$/i,最后用test方法去检测字符串str
             * @param str
             */
            function endsWithVowel(str) {
                var reg = /[a,e,i,o,u]$/i;
                return reg.test(str);
            }
    
            /**
             * XXX-XXX-XXXX
             * @param str
             * @returns {boolean}
             */
            function matchesPattern(str) {
                // var reg =/^d{3}[-]d{3}[-]d{4}$/; 上面太笨了
                var reg =/^(d{3}-){2}d{4}$/;
                return reg.test(str);
            }
            function isUSD(str) {
                //? 匹配前面元字符0次或1次
                var reg = /^$d{1,3}(,d{3})*(.d{2})?$/;
                return reg.test(str);
            }
        </script>
        <script>
            var arr = [1,3,4,9,8,3,1,8,8];
           // alert(indexOf(arr,3));
          //  alert(remove(arr,3));
           // alert(removeWithoutCopy(arr,3));
            //alert(append(arr,4));
            //alert(truncate(arr));
           // alert(duplicates(arr));
           // alert(square(arr));
            var fn=function (greeting, name, punctuation)
            {
                return greeting + ', ' + name + (punctuation || '!');
            }
            arr = ['Hello', 'Ellie', '!'];//参数数组
           // alert(argsAsArray(fn,arr));
            //alert(createModule("111","222").sayIt());
            //alert(valueAtBit(8,2));
            //alert(convertToBinary(65));
            alert(containsNumber("ac"));
        </script>
    </body>
    </html>
  • 相关阅读:
    servlet配置restful
    Servlet异步上传文件
    JQuery全选Prop(“check”,true)和attr("attr",true)区别
    登录FTP,下载并读取文件内容
    Get请求中文乱码的几种解决方式
    系统架构概念及思想2
    系统架构概念及思想1
    Harbor高可用
    Harbor基础
    Docker原理及使用
  • 原文地址:https://www.cnblogs.com/bee-home/p/7225331.html
Copyright © 2020-2023  润新知