关于Harmony的学习

day20

一、ES5严格模式

ES5提出严格模式,能让代码更规范,分为全局和局部。 进入严格模式语法:'use strict'

规则:①声明变量时必须使用var,不然会报错。 ②函数参数不能有重复的名称 ③函数名称+括号调用函数,this无法指向全局对象window,会输出undefined ④不允许动态的修改arguments的值 ⑤废弃了arguments。callee()方法。

二、Date对象

    // 一、创建日期对象// Date内置日期对象,所谓的内置对象就是js默认提供的好的对象,让你可以直接使用的,不需要自定义// var d = new Date()// 根据当前的日期对象,对应获取到年、月、日、小时、分钟、秒、毫秒等等信息
​// 二、获取年// console.log(d.getFullYear())// 三、获取月// 注意点:默认是从0开始的,所以需要手动+1// console.log(d.getMonth()+1)// 四、获取周// console.log(d.getDay())// 五、获取日// console.log(d.getDate())
​// 六、获取小时// console.log(d.getHours())// 七、获取分钟// console.log(d.getMinutes())// 八、获取秒// console.log(d.getSeconds())// 九、获取毫秒// console.log(d.getMilliseconds())
​// 十、时间戳:指的是从1970年1月1日零时到现在经过的毫秒数// console.log(d.getTime())
​// 设置日期// 复杂设置方法// d.setFullYear(2025)// console.log(d)
​// 简单设置方法// var d = new Date('2025/10/01 12:30:00')// var d = new Date('2025-10-01 12:30:00')// console.log(d)

三、定时器

    /*setInterval()+ 定时器=> 就是随着时间的变化,可以不断输出逻辑代码+ 参数=> 参数1是一个函数=> 参数2表示的是时间+ 定时器的时间是以毫秒来计算的=> 1秒 == 1000毫秒clearInterval()+ 清除定时器+ 定时器有一个返回值,返回值是定时器的序号或者称之为唯一的id+ 参数=> 定时器的序号+ 注意点=> 定时器的序号默认是从1开始的没有任何问题=> 浏览器安装了插件,有些插件需要执行一些定时任务,默认开启了定时器。所以咱们打印出来的序号不是从1开始的*/ // var i = 0// setInterval(function(){//     i++//     console.log(i)// }, 1000)
​// var start = document.querySelectorAll('button')[0]// var end = document.querySelectorAll('button')[1]
​// var box = document.querySelector('div')
​// var heigth = 1// setInterval(function(){//     heigth += 20//     box.style.height = heigth + 'px'// }, 30)
​// var heigth = 0// var timer = null// start.onclick = function(){//     timer = setInterval(function(){//         heigth += 20//         box.style.height = heigth + 'px'//     }, 30)//     console.log(timer)// }// end.onclick = function(){//     clearInterval(timer)// }
​var i = 0fn()function fn(){i++console.log(i)}setInterval(fn, 1000)

四、定时器累加

        + 问题:=> 当你连续多次点击按钮的时候,大家发现代码执行速度越来越快,并且点击关闭定时器按钮失效,这种问题就是累加=> 当你点击关闭按钮时,实际上关闭的是最后一次的定时器,但是前面开启的定时器还在不断的执行中+ 原因=> 当你连续多次点击按钮的时候,点击一次开启一次定时器,多次点击就开启了很多的定时器,就会形成累加=> 本来1秒钟输出1次结果,现在1秒钟输出多次结果,因此看到的速度越来越快=> 例如:打印文件-> 时间为1秒钟,让你1秒钟打印1一份文件,看到的速度是正常的-> 时间还是1秒钟,但是让你打印10份文件,时间不变,速度越来越快+ 解决方案=> 先清除,再开启

五、抢购倒计时

        // 获取元素var h1 = document.querySelector('h1')
​// 抢购倒计时的思路:使用将来的时间 - 现在的时间 = 剩余的时间
​// 第一步:先设置将来的时间var endDate = new Date('2024/11/11 00:00:00')
​// 问题:定时器需要等待1秒后,再去调用执行,所以页面会出现1秒钟的空白的现象// 解决方案:在已进入页面的时候就先调用一次定时器djs()
​setInterval(djs, 1000)
​function djs(){// 第二步:获取当前的时间,当前时间必须动态的获取,使用定时器1秒钟获取一次当前的时间var nowDate = new Date()// 第三步:求出总的秒数,使用时间戳来计算var seconds = parseInt((endDate.getTime() - nowDate.getTime())/1000)// 第四步:如果总的秒数为0的话,那么说明开启抢购if(seconds<=0){alert('开启抢购!')return}// 第五步:进行日期转换
​// 函数调用var d = patchFn(parseInt(seconds/3600/24))var h = patchFn(parseInt(seconds/3600%24))var m = patchFn(parseInt(seconds/60%60))var s = patchFn(parseInt(seconds%60))
​// 第七步:进行赋值操作h1.innerHTML = '距离开始抢购还剩'+d+'天'+h+'小时'+m+'分钟'+s+'秒'}// 第六步:补位操作// 进行补位操作代码封装function patchFn(num){return num<10 ? num = '0' + num : num}
​

六、Math对象

    // Math是内置数学对象// πconsole.log(Math.PI)// 绝对值console.log(Math.abs(-9))// 四舍五入console.log(Math.round(5.4))console.log(Math.round(5.5))console.log(Math.round(5.6))// 向上取整console.log(Math.ceil(10.1))console.log(Math.ceil(10.2))console.log(Math.ceil(10.9))// 向下取整console.log(Math.floor(9.9))console.log(Math.floor(9.1))// 开根号console.log(Math.sqrt(9))// 幂数(次方)console.log(Math.pow(2, 2))console.log(Math.pow(2, 3))console.log(Math.pow(2, 4))// 求最大值console.log(Math.max(10, 20))// 求最小值console.log(Math.min(30, 20))
​// 扩展:可以把数组里面最大值和最新值取出来var arr = [10, 20, 30]// 参数1表示改变某个对象的this指向,数组不需要修改,因此使用null占位即可// 参数2表示当前求最大值和最小值的数组console.log(Math.max.apply(null, arr))console.log(Math.min.apply(null, arr))

七、随机数

随机数是指0-1之间的随机数,取1的概率很小。

随机数公式:通过这个公式取范围 random = Math.random()*(max-min)+min

八、可以直接获取的标记

window 窗口(最大的对象) document 网页 document.documentELement html标记 document.body body标记 document.head head标记 document.title

九、延时器

setTimeout() 延时器 => 时间到了,只执行一次 => 定时💣

参数 => 参数1是一个函数 => 参数2表示的是时间

延时器的时间是以毫秒来计算的 => 1秒 = 1000毫秒

clearTimeout() 清除延时器 返回值,返回值是延时器的序号或者称之为唯一的id 参数 => 延时器的序号 注意点 => 延时器的序号默认是从1开始的没有任何问题 => 浏览器安装了插件,有些插件需要执行一些定时任务,默认开启了延时器。所以咱们打印出来的序号不是从1开始的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53181.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android UI绘制流程

UI绘制流程&#xff0c;Activity、Dialog、PopupWindow等 -- android系统的事件分发流程分为很多部分&#xff1a; Native层 –> ViewRootImpl层 –> DecorView层 –> Activity层 –> ViewGroup层 –> View层。 其实Toast窗口和Activity、Dialog、PopupWindow有…

12、Django Admin在列表视图页面上显示计算字段

两种方法&#xff1a; 注册模型有两种方式&#xff0c;需要首先添加或者修改admin中的注册模型如下方式 admin.register(Origin) class OriginAdmin(admin.ModelAdmin):list_display ("name",) 1、在models的模型类中添加函数 def hero_count(self,):return sel…

评价决策类——层次分析法+数学建模+实战分析

目录 一、前言 二、历年题型分析 2.1 常用算法归纳 2.1.1 优化类算法 2.1.2 预测类算法 2.1.3 评价决策类 2.1.4 NP-hard类 2.2 评价类模型求解 2.2.1 层次分析法&#xff08;AHP&#xff09; 2.2.2 多指标评价法&#xff08;MCDA&#xff09; 2.2.3 算法区别 三、层…

如何把自动获取的ip地址固定

在大多数网络环境中&#xff0c;‌设备通常会自动从DHCP服务器获取IP地址。‌这种动态分配IP的方式虽然灵活方便&#xff0c;‌但在某些特定场景下&#xff0c;‌我们可能需要将设备的IP地址固定下来&#xff0c;‌以确保网络连接的稳定性和可访问性。‌本文将详细介绍如何把自…

电子计算机科学中的前端技术:概念、历史、现状与展望?

电子计算机科学中的前端技术&#xff1a;概念、历史、现状与展望&#xff1f; 李升伟 前端技术是创建 Web 页面或 App 等前端界面呈现给用户的过程&#xff0c;通过 HTML、CSS、JavaScript 以及衍生出来的各种技术、框架、解决方案&#xff0c;来实现互联网产品的用户界面交互…

MySQL-基础篇-事务(事务简介、事务操作、事务的四大特性、并发事务引发的问题、事务的隔离级别)

文章目录 1. 事务简介2. 事务操作2.1 未控制事务2.2 控制事务2.2.1 查看事务的提交方式2.2.2 设置事务的提交方式2.2.3 提交事务2.2.4 回滚事务2.2.5 开启事务2.2.6 完善转账案例 3. 事务的四大特性&#xff08;ACID&#xff09;4. 并发事务引发的问题5. 事务隔离级别5.1 演示5…

羊大师:白露养生经,羊奶不可少

随着秋风渐起&#xff0c;白露悄然而至&#xff0c;自然界中的万物开始展现出成熟与收获的喜悦。在这个季节转换的微妙时刻&#xff0c;我们的身体也需要顺应天时&#xff0c;进行一番细致的调养。白露养生&#xff0c;不仅是对自然的敬畏&#xff0c;更是对健康生活的追求。 在…

橘子学ES实战操作之管道类型Ingest pipelines的基本使用

简介 我们在使用ES的时候&#xff0c;经常的用法就是把其他数据源比如Mysql的数据灌到ES中。 借用ES的一些功能来提供数据的全文检索以及聚合分析之类的功能。 在这个灌数据的过程中&#xff0c;我们经常会对数据做一些治理&#xff0c;类似ETL的能力。然后把治理后的数据写入…

SQLite3 数据类型深入全面讲解

SQLite3&#xff0c;作为一款轻量级的数据库管理系统&#xff0c;在数据存储方面展现出了其独特的魅力。它不仅支持标准的SQL语法&#xff0c;还提供了丰富的数据类型供开发者选择。这些数据类型不仅涵盖了基本的数值和文本类型&#xff0c;还包括了日期时间、二进制数据等复杂…

Eclipse 自定义字体大小

常用编程软件自定义字体大全首页 文章目录 前言具体操作1. 打开设置对话框2. 打开字体设置页面3. 找到Text Font&#xff0c;点击修改4. 修改字体 前言 Eclipse 自定义字体大小&#xff0c;统一设置为 Courier New &#xff0c;大小为 三号 具体操作 【Windows】>【Perfer…

三极管的检测方法与经验

中、小功率三极管的检测 1、已知型号和管脚排列的三极管&#xff0c;可按下述方法来判断其性能好坏 a.测量极间电阻。将万用表置于 R100 或 R1k 挡&#xff0c;按照红、黑表笔的六种不同接法进行测试。其中&#xff0c;发射结和集电结的正向电阻值比较低&#xff0c;其他四种…

Mac M1 安装Hadoop教程(安装包安装)

一、引言 前面一期&#xff0c;我分享了通过homebrew方式安装Hadoop&#xff0c;本期我将通过安装包方式介绍下hadoop如何安装。二、下载open jdk8 官方下载地址 注意如果是x86架构的苹果电脑&#xff0c;Architecture选择x86 64-bit或者 x86-32bit。 下载后&#xff0c;将得…

Spark-push-based shuffle

一、上下文 《Spark-Task启动流程》中讲到如果一个Task是一个ShuffleMapTask&#xff0c;那么最后在调用ShuffleWriter写入磁盘后还会判断是否可以启用push-based shuffle机制&#xff0c;下面我们就来继续看看push-based shuffle机制背后都做了什么 二、push-based shuffle机…

python-实战4拆分pdf文件

Wps等软件拆分一份页数较多的PDF文件时&#xff0c;经常会出现要收费或者只能拆分其中几页的情况&#xff0c;下面我们就自己来写代码来实现这个收费功能。 课程中已经初步学习了如何将一个PDF文件拆分成总页数个子PDF文件&#xff0c;我们基于其中的思路进行改进&…

【Unity开发】Blender导入VRM格式注意事项

【背景】 Blender顺利导入了VRM Format插件后&#xff0c;发现有的电脑导入后Mesh&#xff0c;Armature和Texture都一切正常&#xff0c;有的电脑只能导入一个框架。 【分析】 首先检查Blender版本和插件的适配性&#xff0c;4.2版本前后VRM Format有两个不同版本。 Blender…

JVM:浅谈JVM调优策略

多数的Java应用不需要在服务器上进行GC优化&#xff0c;虚拟机内部已有很多优化来保证应用的稳定运行&#xff0c;所以不要为了调优而调优&#xff0c;不当的调优可能适得其反。在应用上线之前&#xff0c;先考虑将机器的JVM参数设置到最优&#xff08;适合&#xff09;。 在进…

Golang 开发使用 gorm 时打印 SQL 语句

目录 1. 使用 Debug 方法2. 全局设置日志级别3. 自定义 Logger4. 总结 参考 gorm 文档&#xff1a;https://gorm.io/zh_CN/docs/logger.html Gorm 有一个 默认 logger 实现&#xff0c;默认情况下&#xff0c;它会打印慢 SQL 和错误。如果想要全部或部分打印 SQL 的话可以通过设…

基于QT与STM32的电力参数采集系统(华为云IOT)(211)

文章目录 一、前言1.1 项目介绍【1】开发背景【2】项目实现的功能【3】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】整体构架【3】上位机开发思路【4】供电方式1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】摘要1.4 开发工具的选择【1】设备端开发…

移动UI:成就勋章页面该如何设计,用例子说明。

移动应用的UI成就勋章页面通常是一个展示用户在应用中取得成就和获得勋章的页面。这种页面通常用于激励用户参与应用的活动&#xff0c;增加用户的参与度和忠诚度。 UI设计成就勋章页面时&#xff0c;一般会包括以下元素和功能&#xff1a; 1. 勋章列表&#xff1a; 展示用户…

关于解决输入法自动切换无法正常输入文字,此时鼠标旁边出现蓝色圆圈频闪的问题解决

输入法切换时鼠标旁边出现蓝色圆圈频闪&#xff0c;通常表明有某个后台进程正在频繁运行或某个服务在不断启动或崩溃。这可能是导致输入法频繁切换的根本原因。 第一步&#xff1a;检查和终止异常的后台进程 任务管理器&#xff1a; 打开任务管理器 (Ctrl Shift Esc)。在“…