JavaScript-0811

1、冒泡排序
    两个相邻的元素进行比较,按照从小达大排序,如果左边的数字比右边的要大就交换数据
2、选择排序
    假设第一个元素是最小值,反复使用其他的元素分别与最小值做比较,如果假设不成立,使用新的最小值继续比较,同时也会记录最小值的下标。比较完毕,将第一个元素与最小值进行位置交互
3ES5中语法
    1、严格模式:设置代码规范的 让代码更加严谨
        1、禁止隐式创建变量
        2、禁止函数形参同名
        3、禁止普通函数this直接表示window对象
        使用严格模式 代码第一行示使用"use strict"
    2ES5中新增的数组方法
        1、indexOf 用于查找数组中是否存在指定的元素,存在返回的是下标 否则 -1
        2、forEach(function(item,index){}) 数组遍历
        3、map:map方法匿名函数要求返回具体的值,最后每个元素执行匿名函数返回值组合成为一个新数组
        4、filter:匿名函数中要求返回布尔值,通过布尔值决定循环的元素是否保留,最后返回一个新数组
        5、reduce:归并方法
            arr.reduce(function(prev,next,index){},init) 匿名函数中一定要返回内容方便下次使用
4、字符串
    ASCII:字符与数字的对应表格
    字符串比较大小:字符串在比较大小是按照ASCII值进行比较,按照字符顺序逐个比较,如果有一个可以确定大小关系了比较就终止
    字符串基本操作:将字符串按照数组使用
    字符串中内置函数
        1、字符串截取方法
            substr(开始位置,长度)
            substring(开始位置,结束位置)
            slice(开始位置,结束位置)
        2、字符串替换 replace()
        3、转换大小写
            toLowerCase()
            toUpperCase()
        4、去空格 trim()
        5、字符串分割 split() 

Math

JS中内置Math进行数学运算。Math下的方法都是使用Math.方法名称调用

1、round

// 1、 取整 但是是按照四舍五入规则
console.log(Math.round(1.6))

2、向上取整

// 2、向上取整 不论小数点 后的数字是比5大还是小
        console.log(Math.ceil(1.2));

3、向下取整

// 3、向下取整
console.log(Math.floor(1.8));//1

4、绝对值

 // 4、绝对值
console.log(Math.abs(-9));//9

5、开平方

console.log(Math.sqrt(4));

6、计算次方

// 6、计算次方  第一个参数是计算数字 第二个参数是 次方数
console.log(Math.pow(4,2));
// console.log(4 ** 2)

7、随机数

// 8、随机数
console.log(Math.random()); //随机生成0-1之间的小数 但是不包含1

8、封装生成指定区间的随机数

/**
 * 生成随机数
 * @param {Number} min 开始数字 
 * @param {Number} max  结束数字
 * @param {Boolean} hasEnd 是否包含结束位置 true包含 否则 不包含
 */
function makeRandom(min,max,hasEnd){
    if(hasEnd){
        return Math.floor(Math.random()*(max-min+1)+min);
    }
    return Math.floor(Math.random()*(max-min)+min);
}

9、随机点名

<script src="common.js"></script>
    <script>
        var arr = ['孙悟空','亚索','嘉文','赵信','盖伦'];
        btn1.onclick = function(){
            // 生成随机名字 就是生成随机下标
            var index = makeRandom(0,arr.length,false);
            span1.innerHTML = arr[index];
        }
    </script>

Date

Date对象获取

1、不传递参数

// 1、获取到当前时间的对象  Thu Aug 11 2022 14:06:56 GMT+0800 (中国标准时间)
        var d = new Date();
        // d 确实是对象 只是输出时系统会自动的显示为 年月日 时间
        console.log(d);
        console.log(typeof d);

2、传递数字参数

// 2、传递数字参数 参数分别表示 年、月、日、时、分、秒
// 月份按照国外的表示方式 不是数字1-12 而是0-11
// var d = new Date(2022,8,11,12,12,12);

// var d = new Date(2022,1,30,12,12,12)

console.log(d)

3、传递字符串方式获取对象

// 3、传递字符串方式获取对象
var  d = new Date('2022.08.09 12:12:12');
d = new Date('2022-08-09');
d = new Date('2022/09/09')
console.log(d)

Date对象获取时间方法

var d = new Date();
// 获取年份
console.log(d.getFullYear());//2022
// 获取月份 范围在0-11之间
console.log(d.getMonth());
// 获取日期
console.log(d.getDate());
// 获取到星期几
console.log(d.getDay());
// 获取小时
console.log(d.getHours());
// 获取分钟
console.log(d.getMinutes());
// 获取秒钟
console.log(d.getSeconds());
// 获取毫秒值  1s=1000毫秒
console.log(d.getMilliseconds());
// 获取到当前时间戳数字(毫秒单位)  时间戳是1970到现在的秒数
console.log(d.getTime())
// 方法名称中包含UTC 表示标准格林威治时间
console.log(d.getUTCHours())
console.log(d)

英文时间转化成字符串案例

var str = 'Thu Aug 11 2022 14:34:57 GMT+0800 (中国标准时间)';
var d = new Date(str);
var y = d.getFullYear();
var m = d.getMonth() + 1;
var date = d.getDate();

var h = d.getHours();
var minute = d.getMinutes();
var s = d.getSeconds();
console.log(y + '-' + m + '-' + date + ' ' + h + ':' + minute + ':' + s);

日期与时间戳转换

1、日期转换为时间戳


// 获取当前时间的时间戳  ,如果需要获取其他时间的时间戳可以传递参数
// var d = new Date();
// console.log(d.getTime());
// 获取当前时间戳
// console.log(+new Date())
console.log(Date.parse('2022-08-11'))

2、时间戳转换为日期

var  time = 1560199544356;
var d = new Date();
// 以当前的时间戳设置d对象对应的时间
console.log(d.setTime(time));//返回的结果不是对象
// d.setTime(time).getMonth() 写法错误
console.log(d)

计算日期差案例

var t1 = '2022-08-11';
var t2 = '2022-09-12';
// 计算两个时间相差的秒数
var diffSeconds = Math.abs(Date.parse(t1) - Date.parse(t2)) / 1000;
// 计算相差的天数
var d = Math.floor(diffSeconds / (24 * 3600));
// 计算相差的小时
var h = Math.floor((diffSeconds - d * 24 * 3600) / 3600);
// 计算相差的分钟
var m = Math.floor((diffSeconds - d * 24 * 3600 - h * 3600) / 60);
// 计算相差的秒数
var s = (diffSeconds - d * 24 * 3600 - h * 3600) % 60
console.log(d + '天' + h + '小时' + m + '分' + s + '秒');

显示中文时间案例

<!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>
</head>

<body>
    <script>
        var str = '2022-08-11 15:39:45';
        var d = new Date(str);
        // 设置数字0-9与中文的对应关系
        var chinese = ['零','一','二','三','四','五','六','七','八','九'];

        function formatYear(year){
            var result = '';
            // 将数字转换为字符串 在分割为数组
            year.toString().split('').forEach(function(item){
                result += chinese[item];
            })
            return result;
        }

        // 将其他的时间转换为中文
        function format(number){
            /*
                number值是在0-60之间的一个数字
                    <10 直接显示对应的中文
                    =10 显示固定的十
                    <20 显示十 额外在加上最后数字的中文
                    >=20 显示第一个数字 加上 十 第二个数字如果为0 结束否则就再加上数字对应的中文
            */
            var result = '';
            if(number<10){
                result = chinese[number];
            }else if(number == 10){
                result = '十';
            }else if(number<20){
                // 计算第二个数字
                var index = number.toString()[1];
                result  = '十'+chinese[index];
            }else{
                // 30
                result = chinese[number.toString()[0]]+'十';
                if(number.toString()[1] != 0){
                    result += chinese[number.toString()[1]]
                }
            }
            return result;
        }
        var year = formatYear(d.getFullYear());
        var month = format(d.getMonth() + 1);
        var date = format(d.getDate());
        var hours = format(d.getHours());
        var minutes = format(d.getMinutes());
        var seconds = format(d.getSeconds());
        console.log(year+'年'+month+'月'+date+'日'+hours+'点'+minutes+'分'+seconds+'秒');
        //
    </script>
</body>

</html>

设置时间

与获取时间相关的方法基本同名 区别在于前缀不一样

var d = new Date();
// 设置年份
// d.setFullYear(1991);
// 设置月份
d.setMonth(10);
d.setDate(20);
d.setHours(21);
console.log(d);

本地日期格式化

var d = new Date();
        
console.log(d);
// 按照本地计算机时间格式显示
console.log(d.toLocaleString());
console.log(d.toLocaleDateString());
console.log(d.toLocaleTimeString());
console.log(d.toUTCString()); //转换为格林威治时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

goto_w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值