严格模式ESMA5 新增的数组方法 Math对象date对象时间戳 倒计时

    科技2022-07-15  109

    严格模式

    <script> // 所谓JavaScript中的严格模式 // JavaScript是一个弱类型的计算机语言 // 对于语法格式的要求不是很严谨 // 执行语法时,会有各种不符合规范的定义方式 // 所谓的严格模式,就是强调了一些语法规范,你必须遵守 // 实际开发中,不要使用严格模式 // 只有在 封装 时 : 例如 封装插件 , 打包代码(gulp打包代码) 才会使用严格模式 // 目前我们只要知道了解有这个回事儿,就可以了 // 'use strict' 定义严格模式 // 这个定义 必须写在JavaScript程序的最起始部分 'use strict'; // 就是开启了严格模式 int = 100; // 正常情况下,不写关键词var // 是一个赋值语句,没有int变量,会将赋值语句,升级为定义变量 // 而且定义的是一个全局变量 // 如果开启严格模式,就必须要有var声明变量 console.log(int); // 总结: // 1, 'use strict'; 必须要写在第一行 // 2, 开启严格模式,有些不规范的语法形式,要报错 // 3, 项目开发中,不会使用,封装插件,打包代码是才会使用 </script>

    ESMA5 新增的数组方法

    // 有几个特殊的数组的操作方式,是 ESMA5 新增的方法 // 1, indexOf() // 2, forEach() // 3, map() 方法 映射方法 // 语法 : // 数组.map(function( value , key , arr ){需要执行的操作}) // 参数1:存储数组单元的数据 // 参数2:存储数组单元的索引 // 参数3:存储原始数组 // 所谓的映射,就是将当前数组的内容 // 一一对应,生成一个新的数组 // 数据组中,数据单元的个数,与之前数组的单元个数一样 // 数值的数值,与之前的数值,可以不一样 // var arr = [1,2,3,4,5,6]; // var res = arr.map(function(v){ // // return 的是 新数组中的数值,与原始数组中的数值的映射关系 // // 当前设定的是 乘2的关系 // return v *= 2; // }) // console.log(res); // 4, filter() 过滤数组 // 将符合条件的数据作为返回值 // 语法: // 数组.filter(function(value,key,array){操作的程序}) // var arr = [1,2,3,4,5,6]; // var res = arr.filter(function(v){ // if(v >= 3){ // return v; // } // }) // console.log(res); // 5, some() 数组中是否有一个满足条件的数据 // 有一个就行 // 语法: 数组.some(function(value,key.arr){}) var arr = [1,2,3,4,5,6]; var res1 = arr.some(function(v){ return v >= 6; }) console.log(res1); // 6, every() 数值中所有的数据,是否都满足条件 // 必须所有 // 语法: 数组.every(function(value,key.arr){}) var res2 = arr.every(function(v){ return v >= 6; }) console.log(res2);

    // Math对象

    // 是JavaScript提供的,已经定义好的一个对象 // 其中有很多的方法,我们可以直接使用 // console.log(Math); // 方法1 Math.random() 随机数 // 方法2 Math.round() 四舍五入保留小数 var float1 = 123.156; console.log( Math.round(float1) ); // 方法3 Math.ceil() Math.floor() // 向上取整 向下取整 // 整数部分进一 只保留整数部分 // 这两种方法是今后常用的方法 // 通过计算,完成某项工作,需要 15.3 人 // 人数是不能有小数的, 需要进一取整 实际需要 16个人,来完成工作 // 就是进一取整 // 一共有100条数据,每页显示 3 条数据,应该有 33.3333... 页面 // 实际上,只能进一取整,需要 34 页,完全显示 console.log( Math.ceil(float1) ); console.log( Math.floor(float1) ); // Math.pow() 幂运算 / 乘方运算 // 有两个参数,第一个是底数,第二个是指数 console.log(Math.pow(2,5)); // 计算 2的5次方 // Math.sqrt() 求平方根 console.log(Math.sqrt(9)); // 9的平方根,是3 // Math.abs() 求绝对值 console.log(Math.abs(-9)); // -9的绝对值,是9 // 总结 // 重点是 随机数,向上取整,向下取整

    // date对象

    // 是JavaScript中,提供的,存储时间的对象 // 使用时,需要先创建一个时间对象 // 使用 JavaScript 提供的方法,创建一个时间对象 // 通过 Date() 创建的 对象中,包含很多的方法,都是JavaScript规定好的,可以直接使用 // 存储的时间信息,是程序执行时的 当前时间 var d = new Date(); console.log(d); // 向控制台输出内容 console.dir(d); // 查看对象的内容信息 // 1, getFullYear() 获取4位年份数值 var year = d.getFullYear() ; console.log(year); // 2, getMonth() 获取月份 // JavaScript规定,获取的月份,数值是 0-11 , 0表示1月份,11表示12月份 // 实际月份的数值,是获取结果 +1 var month = d.getMonth() + 1; console.log(month); // 3, getDate() 获取日期 var date = d.getDate(); console.log(date); // 4, getDay() 获取星期 // JavaScript规定,获取星期的结果是 0-6的数值 // 0表示 星期日 1表示 星期一 .... 6表示 星期六 var week = d.getDay(); console.log(week); // 5, getHours() 获取小时 var house = d.getHours(); console.log(house); // 6, getMinutes() 获取分钟 var minute = d.getMinutes(); console.log(minute); // 7, getSeconds() 获取秒 var second = d.getSeconds(); console.log(second); // 总结: // 获取的月份 是 0 - 11 的数值 // 实际月份与获取的数值,相差1 // 获取星期 程序语法 是 getDay() // 获取星期 结果是 0 - 6 的数值 0 表示星期日

    时间戳

    <script> // 时间戳 // 在JavaScript程序中,所谓的时间戳,值得是 // 当前时间和 格林尼治时间 1970年1月1日,0点0分0秒,相差的毫秒数 // 简单理解,就是从 格林尼治时间 1970年1月1日,0点0分0秒,到现在,过了多少毫秒 var d = new Date(); var times = d.getTime(); console.log(times); // 实际项目中,时间戳,往往用于计算时间,来衡量时间差 // 例如 : 秒杀倒计时 // 秒杀 是 4月1日 0点0分0秒开始 // 4月1日 0点0分0秒 这个时间有 时间戳 // 当前时间 也会有 时间戳 // 两个时间戳相减 结果是 两个时间之间的时间差,单位是毫秒 // 再将这个毫秒,转化为 天,小时,分钟,秒,就是我们要的结果 // 获取2020年4月1日0点0分0秒的时间戳 // 获取指定时间的时间对象, Date()参数是要获取的时间的字符串 // '年-月-日 空格 小时:分钟:秒' // 有参数,获取指定时间的时间对象 var end = new Date('2020-4-1 0:0:0'); // 当前的时间对象,没有参数,获取当前时间对象 var start = new Date(); // 计算时间差,应该是 最终的事件的时间戳,减去当前时间的时间戳 // 时间单位是 毫秒, 需要转化为秒 1秒 = 1000毫秒 // 转化的秒数,是小数,我们只要整数部分,取整 // parseInt() Math.ceil() Math.floor() // end - start 直接使用时间对象相减 也可以获取 时间差 // 一些低版本的浏览器,还有一些IE版本的浏览器,对这样时间对象直接相减,操作不支持 var times = parseInt( ( end.getTime() - start.getTime() ) / 1000 ) ; console.log(times); // 需要将时间差的秒数 转化为 天,小时,分钟,秒等信息 // 1,将秒,转化为天 // 秒数 / 一天的秒数 对结果取整 只获取整数部分 // parseInt() 或者 Math.floor() var day = parseInt( times / (24*60*60) ) ; console.log(day); // 2, 将 转化为 天数之后, 剩余的秒数, 转化为 小时 // 而不是所有的秒数 // 方法1: 总秒数 - 天数所代表的秒数 --- 是我们要转化为小时的秒数 // var a = times - day*(24*60*60); // console.log(a); // 方法2: 总秒数 % 一天的秒数 求余数 // 将所有的秒数,都转化为天,之后剩余的余数,就是我们要求的数值,也就是转化为小时的秒数 // var b = times % (24*60*60); // console.log(b); // 转化为小时的秒数 / 一小时有多少秒 结果,获取整数部分 var hour = parseInt( ( times % (24*60*60) ) / (60*60) ); console.log(hour); // 3 , 将 剩余的秒数,转化为分钟 // 方法1:总秒数 - 天数的秒数 - 小时的秒数 // 方法2: 总秒数 % 小时的秒数 // 剩余的秒数 / 分钟的秒数 获取整数部分 var minute = parseInt( ( times % (60*60) ) / 60 ); console.log(minute); // 4 , 求剩余的秒数 // 方法1 : 总秒数 - 天的秒数 - 小时的秒数 - 分钟的秒数 // 方法2 : 总秒数 % 一分钟的秒数 var second = times % 60 ; console.log(second); document.write( `距离结束时间,还有${day}天,${hour}小时,${minute}分钟,${second}秒,请您抓紧时间付款,或者找老公付款` ); </script>

    倒计时

    <script> function setTime(end){ var endTime = new Date(end); var startTime = new Date(); var times = parseInt( ( endTime.getTime() - startTime.getTime() ) / 1000 ); var day = parseInt(times / (24*60*60)); var house = parseInt( (times % (24*60*60)) / (60*60) ); var minute = parseInt( (times % (60*60)) / (60) ); var second = times % 60; return `距离终止时间,还有${day}天,${house}小时,${minute}分钟,${second}秒`; } d.innerHTML = setTime('2020-4-1 0:0:0'); setInterval( function(){ d.innerHTML = setTime('2020-4-1 0:0:0'); } , 1000 ); </script>
    Processed: 0.011, SQL: 8