JavaScritp基础知识整理(六)

本文介绍了JavaScript中的内置对象Date的使用,包括构造函数创建、日期属性和方法。此外,还展示了数组的操作如添加、删除元素,以及字符串的属性和方法,如长度、索引、替换和分割。同时,讲解了简单数据类型和复杂数据类型的区别。

1.内置对象
Date为构造函数,需要使用new创建

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // // Math不是构造函数,使用不需要new
        // console.log();(Math.max(1,2,3))
        // console.log();(Math.PI)
        // console.log(Math.max());
        // // 取整
        // console.log(Math.floor(1.2));
        // console.log(Math.ceil(1.3));
        // console.log(Math.round(3.4));
        // // 0-1之间随机小数
        // console.log(Math.random());
        // // 返回任意数之间的
        // function getRandom(max, min) {
        //     var ran = Math.floor(Math.random() * (max - min + 1) + min);
        //     return ran
        // };
        // getRandom(10, 20);

        // Date是构造函数,需要new创建
        var date = new Date('2021-1-1 9:3:4');
        console.log(date);

        var date1 = new Date();
        console.log(date1); 
        console.log(date1.getFullYear());
        console.log(date1.getMonth() + 1);
        console.log(date1.getDate());
        console.log(date1.getDay());
        
        console.log(date1.getTime());
        console.log(date1.valueOf());
        var date3 = +new Date();
        
        var date2 = date1.getFullYear() + '年' + (date1.getMonth() + 1) + '月' + date1.getDate() + '日' + date1.getHours() + '时' + date1.getMinutes() + '分' + date1.getSeconds() + '秒' + ' 星期' + date1.getDay();
        console.log(date2);

    </script>
</head>
<body>
    
</body>
</html>

倒计时案例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>倒计时</title>
    <script>
        function countDown(time) {
            var target = +new Date(time);
            var nowTime = +new Date(); 
            var remain = (target - nowTime) / 1000;
            var day = parseInt(remain / 60 / 60 / 24);
            var hours = parseInt(remain / 60 / 60 % 24);
            hours = hours < 10 ? '0' + hours : hours
            var min = parseInt(remain / 60 % 60); 
            min = min < 10 ? '0' + min : min
            var sec = parseInt(remain % 60);
            sec = sec < 10 ? '0' + sec : sec

            return '倒计时 :' + day + ' 天 ' + hours + ' 时 ' + min + ' 分 ' + sec + ' 秒 !!!!!' 
        };
        countdown = countDown('2021-11-11 11:11:11');
        alert(countdown)
    </script>
</head>
<body>
    
</body>
</html>

数组

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        // 数组
        // 判断数组
        arr = [];        
        console.log(arr instanceof Array);
        console.log(Array.isArray(arr));
        // 添加
        console.log(arr.push(3)); // 后面加,返回数组长度
        console.log(arr); 
        console.log(arr.unshift('ddddd')); // 头部加
        // 删除
        console.log(arr.pop()); //删除最后一个,返回删除的元素
        console.log(arr.shift()); // 删除第一个,返回删除元素

        arr1 = [133,56,7835,535,24,4234,444,44,55];
        arr2 = [];
        for(var i = 0; i < arr1.length;i++){
            if(arr1[i] < 400) {
                arr2.unshift(arr1[i]);
            }
        }
        console.log(arr2);
        // 取反
        arr1.reverse();
        // 排序
        arr1.sort(function(a, b){
            // 升序
            return a - b;
            // 降序 b -a
        });
        console.log(arr1);
        // 索引
        arr3 = ['a', 'b', 'c', 'd', 'e', 'c', 'a', 'e', 'f'];
        console.log(arr3.indexOf('c')); // 从前往后
        console.log(arr3.lastIndexOf('c')); // 从后往前
        //  数组去重
        arr3_not = [];
        for(var i = 0; i < arr3.length; i ++) {
            if(arr3_not.indexOf(arr3[i]) == '-1') {
                arr3_not.push(arr3[i]);
            }
        };
        console.log(arr3_not);
    </script>
</head>
<body>
    
</body>
</html>

字符串
虽然字符串是简单数据类型,没有属性,但是js会把简单数据类型包装成复杂数据类型,让他有了长度等属性。

var str = 'mingda';
console.log(str.length);
// 相当于
var temp = new String();
var str = temp;
temp = null;  

字符串不可变

// 比如
var str = 'pangzi'; // 此时在内存中开辟了一块空间,存放pangzi,str指向pangzi。
str = 'shouzi'; // 有开辟一块空间存放shouzi,原来的不变,str指向shouzi。
console.log(str); // shouzi 
// 所以字符串的不可变指的是内存内声明后不会改变,一直存在

索引


        // 获取字符串的索引和array一样
        var index = '有一种悲伤';
        console.log(index.indexOf('3')); // 找不到返回-1

        // 返回a出现次数和位置
         var distint = 'abaadefkksdadasdijcjiasjd';
         var time = 0;
         for(var i = 0; i < distint.length; i ++) {
             if(distint[i] == 'a') {
                console.log(i);
                time++;
             }
         }
         console.log(time);
	    // 根据位置返回字符 
        var tlocation = '你的名字停留在我的过往';
        console.log(tlocation.charAt(2));
        console.log(tlocation.charCodeAt(0));
        // 计算出现次数最多的字符并计数
        var item = {};
        for(var i = 0; i < distint.length; i ++) {
             if(item[distint.charAt(i)]) {
                item[distint.charAt(i)] ++;
            } else {
                item[distint.charAt(i)] = 1;
            }
        }
        maxTime = 0;
        var maxStr = '';
        for(var k in item){
            if(maxTime < item[k]) {
                maxTime = item[k];
                maxStr = k;
            } 
        }
        console.log(maxStr + maxTime);
        
        // 字符串替换
        var rep = 'dimingda';
        rep.replace('d', 'n'); // 只会替换第一个,做循环替换所有
        // 分割成数组
        console.log(rep.split('i'));
        // 截取
        console.log(rep.substr(2, 3));
    

2.简单数据类型和复杂数据类型
简单:string 布尔 number null undefined,栈
复杂:new创建,堆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值