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>


  

原文地址:https://www.cnblogs.com/seven-007/p/7810599.html