自己一下午练习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>
时间: 2024-08-10 21:26:00

自己一下午练习Js的代码的相关文章

仿jQuery的siblings效果的js原生代码

仿jQuery的siblings效果的js原生代码 <previousSibling> 属性返回选定节点的上一个同级节点(在相同树层级中的前一个节点). <nextSibling> 属性返回被选节点的下一个同级节点(在相同树层级中的下一个节点). 如果不存在这样的节点,则该属性返回 null.//元素节点的节点类型是 1  obj.previousSibling.nodeType ==1; reverse() 方法用于颠倒数组中元素的顺序. push() 方法可向数组的末尾添加一个

兼容IE与Firefox的js 复制代码

<script type="text/javascript"> function copyCode(id){     var testCode=document.getElementById(id).value;     if(copy2Clipboard(testCode)!=false){         alert("生成的代码已经复制到粘贴板,你可以使用Ctrl+V 贴到需要的地方去了哦! ");     } } copy2Clipboard=f

一行js弹窗代码就能设计漂亮的弹窗广告

接到一个设计需求,要求xmyanke在网站右侧挂一个弹窗广告宣传最近的活动,找了半天都没看到合适的,自己鼓捣了一行js弹窗代码就能设计漂亮的弹窗广告,来瞧一下,欢迎拍砖提意见,js弹窗广告代码如下: document.writeln("<div id=\"leftDiv1\" ><a href='http://www.xiameneye.org.cn/special/zhengji/' target=_blank><img src='/templ

60秒验证码倒计时js代码 js样式代码 方块上下左右随机移动(定时器) js中获取元素的方法 js中表单提交

60秒验证码倒计时js代码 <script type="text/javascript"> var countdown=60; function settime(val) { if (countdown == 0) { //removeAttribute() 方法删除指定的属性. disabled属性规定应该禁用 input 元素. val.removeAttribute("disabled"); val.value="免费获取验证码"

js/javascript代码注释规范与示例

注释在代码编写过程中的重要性,写代码超过半年的就能深深的体会到.没有注释的代码都不是好代码.为了别人学习,同时为了自己以后对代码进行‘升级’,看看js/javascript代码注释规范与示例.来自:http://www.56.com/style/-doc-/v1/tpl/js_dev_spec/spec-comment.html 文件注释 文件注释位于文件的最前面,应包括文件的以下信息:概要说明及版本(必须)项目地址(开源组件必须)版权声明(必须)开源协议(开源组件必须)版本号(必须)修改时间(

javascript--函数的声明及调用/JS中代码执行顺序

[函数的声明及调用] 1.函数声明格式: function 函数名(参数1,参数2,参数3--){ //函数体 return 结果: } 函数调用的格式: 函数名(参数1的值,参数2的值,--): 事件调用:事件名=函数名(): 2.函数声明的几点强调: ① 函数的声明,必须符合小驼峰法则(首字母小写,之后每个单词首字母大写): ② 参数的列表,可以有参数,可以无参数.分别称为有参函数,无参函数: ③ 声明函数时的参数列表,称为"形参列表"(变量的名): 调用函数时的参数列表,称为&q

C#和网页js互调代码

C#和网页js互调代码 1.先写个网页放在主程序目录下:test.html <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title>测试网页</title> <script> function MyFun

js收藏代码

js收藏代码~ 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 <table border oncontextmenu=return(false)><td>no</table> 可用于Table 2. <body onselectstart="return false"> 取消选取.防止复制 3. onpaste="return fals

博客园使用D3.js的代码框架

导入D3.js的代码应该放置在主题HTML元素内容的底部. 1 <style><!-- 2 3 --></style> 4 <div id="container"> </div> 5 <p> 6 <script type="text/javascript" src="http://files.cnblogs.com/files/alexywt/d3.js"><