• python之路_前端基础之JS(2)


      在JavaScript中除了null和undefined以外其他的数据类型都被定义成了对象,也可以用创建对象的方法定义变量,String、Math、Array、Date、RegExp都是JavaScript中重要的内置对象,在JavaScript程序大多数功能都是基于对象实现的。

    一、字符串String对象

    1、字符串对象的创建

    //方式一:变量 = “字符串”
    s="HEllo world";
    //方式二:字串对象名称 = new String (字符串)
    a=new String("hello world") ;

    2、字符串对象属性及函数

      具体罗列如下:

    x.length                                                          ----获取字符串的长度
    x.toLowerCase()                                                   ----转为小写
    x.toUpperCase()                                                   ----转为大写
    x.trim()                                                          ----去除字符串两边空格       
    
    ----字符串查询方法
    
    x.charAt(index)                                                   ----通过索引找字符
    x.indexOf(findstr)                                                ----通过字符找索引
    x.lastIndexOf(findstr)  
    
    x.match(regexp)                                                   ----match返回匹配字符串的数组,如果没有匹配则返回null
    x.search(regexp)                                                  ----search返回匹配字符串的首字符位置索引
    
                            示例:
                                var str1="welcome to the world of JS!";
                                var str2=str1.match("world");
                                var str3=str1.search("world");
                                alert(str2[0]);  // 结果为"world"
                                alert(str3);     // 结果为15
                            
    
    ----子字符串处理方法
    
    x.substr(start, length)                                          ----截取从索引为start开始、长度为length的字符串
    x.substring(start, end)                                          ----截取从索引start开始到索引end结束的字符串,不包含索引end的字符
    x.slice(start, end)                                              ----切片操作字符串
                            示例:
                                var str1="abcdefgh";
                                var str2=str1.slice(2,4);
                                var str3=str1.slice(4);
                                var str4=str1.slice(2,-1);
                                var str5=str1.slice(-3,-1);
                                alert(str2); //结果为"cd“
                                alert(str3); //结果为"efgh”
                                alert(str4); //结果为"cdefg“
                                alert(str5); //结果为"fg"
    
    x.replace(findstr,tostr) ----字符串替换 x.split(); ----分割字符串
    var str1="一,二,三,四,五,六,日"; var strArray=str1.split(","); alert(strArray[1]);//结果为"二" x.concat(addstr) ----拼接字符串

    二、数组Arry对象

    1、数组对象的创建

    //创建方式1:
    var 数组名 = [元素0,元素1,….];                                   // 如:var arr=[1,2,3];
    //创建方式2:
    var 数组名 = new Array(元素0,元素1,….);                         //如: var arr=new Array(100,"a",true);
    //创建方式3:
    var 数组名 = new Array(长度); 
    var arr=new Array(7);
    arr[0]="星期日";
    arr[1]="星期一";
    ...
    arr[6]="星期六";

    2、数组对象的属性和方法

      (1)join()方法

      将数组拼成字符串:

    s=["hello","word"]
    var ret=s.join("|");
    console.log(ret);                                            //结果为:hello|word

      (2)concat()方法

      用于扩充数组,与python中列表extend()方法不同的是,此方法并不改变原有数组,只是得到一个扩充后的数组副本。

    var arr=[11,3.14,true,"hello"];
    var ret=arr.concat(444,555);                               //写成数组形式也可:[444,555]
    console.log(ret)                                           //结果为:[11, 3.14, true, "hello", 444, 555]

      (3)reverse()方法

      将现有数组反转,改变现有数据顺序:

    var arr=[12,100,23,45];
    arr.reverse()
    console.log(arr);                                       //结果:[45, 23, 100, 12]
    console.log(arr.toString())                            //结果:45,23,100,12

      (4)sort()方法

      对现有数组顺序按照acssii码的顺序进行重新排序:

    var arr=[12,100,23,45];
    arr.sort()
    console.log(arr);        //结果为: [100, 12, 23, 45]

      上述数字数组按照数字的真实大小进行排序的做法如下:

    var arr=[12,100,23,45];
    function Mysort(a,b) {
                  return a-b
            }
    arr.sort(Mysort)
    console.log(arr);                                     //[12, 23, 45, 100]

      (5)slice()方法

      按照索引对数组进行切片,用法和字符串中的此方法一样,示例如下:

    var arr1=['a','b','c','d','e','f','g','h'];
    var arr2=arr1.slice(2,4);
    var arr3=arr1.slice(4);
    var arr4=arr1.slice(2,-1);
    
    alert(arr2.toString());                                       //结果为"c,d" 
    alert(arr3.toString());                                       //结果为"e,f,g,h"
    alert(arr4.toString());                                       //结果为"c,d,e,f,g"

      (6)push()和pop()方法

      push是将value值添加到数组x的结尾,value可以为字符串、数字、数组等任何值。pop是将数组x的最后一个元素删除:

    var arr3=[111,222,333];
    arr3.push(444,555);
    console.log(arr3);                                            //[111, 222, 333, 444, 555]
    arr3.push([666,777])                                          //数组[666,777]作为一个整体放在数组aar3内
    console.log(arr3)                                             //[111, 222, 333, 444, 555, Array(2)]
    
    var s=arr3.pop();
    console.log(arr3);                                           //[111, 222, 333, 444, 555]
    console.log(s);                                              //[666, 777]

      (7)unshift()和shift()

      与(6)中的相反,unshift()是将value值添加到数组x的开头,value可以为字符串、数字、数组等任何值。shift是将数组x的第一个元素删除:

    var arr3=[111,222,333];
    arr3.unshift(555,6666);                                    //多个字符按照原有顺序整体放在数组前头
    console.log(arr3);                                         // [555, 6666, 111, 222, 333]
    s=arr3.shift();
    console.log(arr3)                                          //[6666, 111, 222, 333]
    console.log(s)                                             //555
      (8)splice()
      x. splice(start, deleteCount, value, ...),splice的主要用途是对数组指定位置进行删除和插入,start表示开始位置索引,deleteCount删除数组元素的个数,value表示在删除位置插入的数组元素,可以省略。
    var a = [1,2,3,4,5,6,7,8];
    a.splice(1,2);
    alert(a.toString());                                    //a变为 [1,4,5,6,7,8]
    a.splice(1,1);
    alert(a.toString());                                   //a变为[1,5,6,7,8]
    a.splice(1,0,2,3);
    alert(a.toString());                                  //a变为[1,2,3,5,6,7,8]
      js中数组的特性:java中数组的特性,  规定是什么类型的数组,就只能装什么类型.只有一种类型。js中的数组特性1: js中的数组可以装任意类型,没有任何限制;js中的数组特性2: js中的数组,长度是随着下标变化的.用到多长就有多长。
    三、data时间对象
    1、创建data对象
    //方法1:不指定参数,表示当前时间
    var nowd1=new Date();
    alert(nowd1.toLocaleString( ));                                     //2017/11/9 下午5:20:54
    //方法2:参数为日期字符串
    var nowd2=new Date("2004/3/20 11:12");
    alert(nowd2.toLocaleString( ));                                     //结果为:2004/3/20 上午11:12:00
    var nowd3=new Date("04/03/20 11:12");
    alert(nowd3.toLocaleString( ));                                     //结果为:2020/4/3 上午11:12:00
    //方法3:参数为毫秒数
    var nowd3=new Date(5000);
    alert(nowd3.toLocaleString( ));                                    //结果为:1970/1/1 上午8:00:05
    alert(nowd3.toUTCString());                                        //结果为:Thu, 01 Jan 1970 00:00:05 GMT
    
    //方法4:参数为年月日小时分钟秒毫秒
    var nowd4=new Date(2004,2,20,11,12,0,300);
    alert(nowd4.toLocaleString( ));                                   //结果为:2004/3/20 上午11:12:00毫秒并不直接显示

    2、获取日期和时间

    获取日期和时间
    getDate()                 获取日
    getDay ()                 获取星期
    getMonth ()               获取月(0-11)
    getFullYear ()            获取完整年份
    getYear ()                获取年
    getHours ()               获取小时
    getMinutes ()             获取分钟
    getSeconds ()             获取秒
    getMilliseconds ()        获取毫秒
    getTime ()                返回累计毫秒数(从1970/1/1午夜)

      应用实例:输出当前具体时间,如:“ 2014年06月18日 15:40:30 星期三”

    function getCurrentDate(){
            var date = new Date();                                //1. 创建Date对象,没有填入任何参数那么就是当前时间
            var year = date.getFullYear();                        //2. 获得当前年份
            var month = date.getMonth()+1;                        //3. 获得当前月份 js中月份是从0到11.
            var day = date.getDate();                             //4. 获得当前日
            var hour = date.getHours();                           //5. 获得当前小时
            var min = date.getMinutes();                          //6. 获得当前分钟
            var sec = date.getSeconds();                          //7. 获得当前秒
            var week = date.getDay();                             //8. 获得当前星期,没有getWeek
            return year+"年"+changeNum(month)+"月"+day+"日 "+hour+":"+min+":"+sec+" "+parseWeek(week);
        }
    alert(getCurrentDate());
    
    //解决 自动补齐成两位数字的方法
        function changeNum(num){
        if(num < 10){
            return "0"+num;
        }else{
            return num;
        }
    }
    //将数字 0~6 转换成 星期日到星期六
        function parseWeek(week){
        var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
        //             0      1      2      3 .............
        return arr[week];
    }

     四、math对象

    //该对象中的属性方法 和数学有关.
       
    abs(x)                        返回数的绝对值。
    exp(x)                        返回 e 的指数。
    floor(x)                      对数进行下舍入。
    log(x)                        返回数的自然对数(底为e)。
    max(x,y)                      返回 x 和 y 中的最高值。
    min(x,y)                      返回 x 和 y 中的最低值。
    pow(x,y)                      返回 x 的 y 次幂。
    random()                      返回 0 ~ 1 之间的随机数。
    round(x)                      把数四舍五入为最接近的整数。
    sin(x)                        返回数的正弦。
    sqrt(x)                       返回数的平方根。
    tan(x)                        返回角的正切。    

      实例:

    alert(Math.random());                           // 获得随机数 0~1 不包括1.
    alert(Math.round(1.5));                         // 四舍五
    //练习:获取1-100的随机整数,包括1和100
    var num=Math.random();
    num=num*100;
    num=Math.round(num);
    alert(num)

    五、BOM对象

      windoes对象:所有浏览器都支持 window 对象,概念上讲.一个html文档对应一个window对象;功能上讲: 控制浏览器窗口的;使用上讲: window对象不需要创建对象,直接使用即可。

    1、window对象方法

    alert()            显示带有一段消息和一个确认按钮的警告框。
    confirm()          显示带有一段消息以及确认按钮和取消按钮的对话框。
    prompt()           显示可提示用户输入的对话框。
    
    open()             打开一个新的浏览器窗口或查找一个已命名的窗口。
    close()            关闭浏览器窗口。
    
    setInterval()      按照指定的周期(以毫秒计)来调用函数或计算表达式。
    clearInterval()    取消由 setInterval() 设置的 timeout。
    setTimeout()       在指定的毫秒数后调用函数或计算表达式。
    clearTimeout()     取消由 setTimeout() 方法设置的 timeout。
    scrollTo()         把内容滚动到指定的坐标。

    2、应用实例

      (1)alert、confirm、prompt

    //confirm点击确认时返回值为true,点击取消返回fasle,通过if语句可以触发不同的事件
           var ret=confirm("是否继续?");
            console.log(ret);
            if (ret){
            }
            else {
            }
    //prompt点击确认时返回值为输入的内容,也可以通过设置if条件,触发不同事件
            var ret=prompt("请输入一个数字")
            console.log(ret)

      (2)setInterval,clearInterval

      setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。

        <script>
            function foo() {
                console.log("ok")
            }
            var ID=setInterval(foo,1000);                      //定时器:每1000毫秒执行一次foo函数
            clearInterval(ID);                                 //清除定时器
        </script>

    定时器实例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script>
            function loop_time() {
                 // 创建时间字符串
                 var date=(new Date()).toLocaleString();
                 console.log(date);
                // 赋值:将时间赋给input标签的默认值value
                var ele_input=document.getElementById("d1");            //  获得input标签对象
                ele_input.value=date
            }
            var ID;                                                    //未赋值的变量ID值为undefined
            function foo() {
                if (ID==undefined){                                   //加if判断时为了防止多次点击begin按钮时开启多个定时器
                    loop_time();
                    ID=setInterval(loop_time,1000);                   //每开启一个定时器时ID的值是不一样的
                }
            }
            
            function end_time() {
                clearInterval(ID);                                    //清除定时器
                console.log(ID);
                ID=undefined                                          //将ID值重新赋予undefined,满足下次开启定时器
            }
        </script>
    </head>
    <body>
    <input type="text" id="d1" style=" 200px">
    <button onclick="foo()">begin</button>
    <button onclick="end_time()">end</button>
    </body>
    </html>


      

  • 相关阅读:
    文言文
    【我回来了】TO DO LIST
    AFO
    [DP]
    [CF1221F]Choose a Square
    关于博主(2)
    自我介绍( 并不?
    老年选手的复健之路
    CSP/NOIP 2019 游记
    CSP前模板复习
  • 原文地址:https://www.cnblogs.com/seven-007/p/7810599.html
Copyright © 2020-2023  润新知