首页
关于
友链
留言
Search
1
安装Docker Desktop报错WSL 2 installation is incomplete
76 阅读
2
震惊!杭州应届生工作免费领2w元
31 阅读
3
我的世界紫禁之巅纯净生存服务器
25 阅读
4
python3网络爬虫开发实战pdf
22 阅读
5
火车头采集问题:Void Proc(System.Net.HttpWebRequest)
20 阅读
技术分享
日常学习
我的世界
Search
标签搜索
python
博客
javascript
ce
web
织梦
html
按键精灵
php
游戏
css
typescript
jquery
日常
数据库
vue
ubuntu
Datehoer
累计撰写
178
篇文章
累计收到
10
条评论
首页
栏目
技术分享
日常学习
我的世界
页面
关于
友链
留言
搜索到
21
篇与
javascript
的结果
2021-01-13
JavaScript promise对象
昨天说了,听课并没有听懂promise到底讲的是什么。不过后来看文档发现其实还是懂一些了。所以发一篇文章记录一下JavaScript promise对象。首先Promise是ECMAScript 6原生提供的对象,Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息。说promise之前,先说一下昨天说的语法糖吧。其实后来写完那篇关于业务逻辑和语法糖的文章后,仔细想了一下,发现其实好多都可以算作是语法糖吧,比如说函数,其实也是为了提高效率而出现的,毕竟其实如果不用函数的话,我们可以把要用到的代码一直复制呗,还有类,等等这些大概其实都可以归到语法糖这一类中。好了,回归正题。promise首先最重要的一个特性就是状态不受外界的改变而改变。解释这个之前,我们先要介绍一下promise的三个状态,分别是peding:初始状态。fulfilled:成功状态。rejected:失败状态。分别是这三个状态,首先进入peding状态进行初始化,然后根据条件来决定是成功还是失败,之后修改状态,然后这个状态就不会发生改变了,不会发生成功状态变成了失败,反之亦然。promise的汉语意思是承诺,代表着只要做出了承诺,就不会改变。然后另一个特性就是状态改变后,任何时候都可以得到这个状态。简单解释一下,就是我们从peding状态改到成功状态后,状态就会发生固定,然后就会一直保持这个状态,我们再对promise进行请求的话,也会立刻得到这个状态。然后在es6中,我们通过promise构建函数的话,需要传入一个函数,promise接受两个函数参数,执行完第一个参数之后,就会改变当前的状态为已完成,如果执行的是第二个参数,则是以失败状态。var promise = new Promise(function(resolve, reject) { // 异步处理 // 处理结束后、调用resolve 或 reject });我们简单的看一下promise的创建,通过new Promise来构建函数。之后传入参数,最后在函数中进行参数的调用,如果是第一个则promise改为完成状态,如果是第二个则是失败状态。然后我们如果调用的话,可以通过.then来进行promise的调用。我们对于已经实例化过的 promise 对象可以调用 promise.then() 方法,传递 resolve 和 reject 方法作为回调。通过上面的总结,我们应该可以比较明确的知道promise的基础部分。不过其实可能对catch不太明白。其实catch跟then类似,都是获取promise的内容,但是then是一个顺序问题,而catch则是获取错误,我们写代码不可避免的会出现各类错误,有的是我们编写的时候就出现的,有的是用户使用的时候出现的,我们可以通过catch来捕获错误,然后进行相应的处理。.then(function(posts) { // some code }) .catch(function(error) { // 处理前一个回调函数运行时发生的错误 console.log('发生错误!', error); });当然,其实promise对象的错误具有一种很好的特性,那就是冒泡性,如果没有catch捕获错误的话,那么就会一直向后传递,直到出现catch捕获错误为止,比如说我们第一行就出现了错误,但是没有catch,那么就会一直向后传递,直到捕获到这个错误才会停止传递,这就是promise对象的一个比较鲜明的特性。promise对象简单介绍到这里,如果有什么疑问的话,可以在评论区留言,我会在看到的第一时间回复的。当然比较学术性的其实我可能也不会,所以推荐几个网址给大家,当然,这是关于JavaScript promise对象的。参考链接: https://wohugb.gitbooks.io/ecmascript-6/content/docs/promise.html https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise http://qingtong234.github.io/2016/01/14/javascript%E4%B8%AD%E7%9A%84promise%E5%BC%82%E6%AD%A5%E7%BC%96%E7%A8%8B-1/
2021年01月13日
2 阅读
0 评论
0 点赞
2021-01-09
html网页音乐播放器
其实一直想在网站上加一个音乐播放器的,但是当时搜索的是谷歌浏览器无法自动播放,所以就没准备加。并且其实当时也自己写了一个播放器, 网页音乐播放器 音乐播放器 html++css+js但是由于懒得写css代码,所以比较丑,然后就没有往网站上加,但是呢,有一个是我一直不明白的地方,就是当时浏览了一个网页,发现他的音乐可以直接播放,所以今天就来研究一下。其实也就是右键检查,来进行代码的查看,然后ctrl+u查看一下源代码,搜索到刚才看的位置,然后看他的这些代码有啥玄机。然后我就发现了一个库。Github:https://github.com/DIYgod/APlayer非常nice的一个库。Aplayer是一个功能强大的HTML5音乐播放器,Metingjs基于Aplayer插件封装好的插件,开箱即用。然后我们直接贴代码就好了,毕竟是人家封装好的库了,所以可以直接使用。支持的浏览器 Chrome Firefox Safari Internet Explorer 11 Microsoft Edge 选项 默认 描述 id(编号) require 歌曲ID /播放列表ID /专辑ID /搜索关键字 server(平台) require 音乐平台: netease , tencent , kugou , xiami , baidu type(类型) require song , playlist , album , search , artist auto(支持类种 类) options 音乐链接,支持: netease , tencent , xiami fixed(固定模式) false 启用固定模式,默认 false mini(迷你模式) false 启用迷你模式,默认 false autoplay(自动播放) false 音频自动播放,默认 false theme(主题颜色) #2980b9 默认 #2980b9 loop(循环) all 播放器循环播放,值:“all”,one”,“none” order(顺序) list 播放器播放顺序,值:“list”,“random” preload(加载) auto 值:“none”,“metadata”,“'auto” volume(声量) 0.7 默认音量,请注意播放器会记住用户设置,用户自己设置音量后默认音量将不起作用 mutex(限制) true 防止同时播放多个玩家,在该玩家开始播放时暂停其他玩家 lrc-type(歌词) 0 歌词显示 list-folded(列表折叠) false 指示列表是否应该首先折叠 list-max-height(最大高度) 340px 列出最大高度 storage-name(储存名称) metingjs 存储播放器设置的localStorage键 具体的代码可以去看GitHub库,里面有详细的解释。简单贴一下我们的这个底部小图标的代码吧。<meting-js server="netease" type="playlist" id="60198" fixed="true" autoplay="true" loop="all" order="random" preload="auto" list-folded="ture" list-max-height="500px" lrc-type="1"> </meting-js>非常的方便,html网页音乐播放器,开箱即用。
2021年01月09日
5 阅读
0 评论
0 点赞
2021-01-04
JavaScript 三目运算符,三元运算,冒号 问号
JavaScript中有许许多多的运算符,其中大部分都是一眼就能明白是什么意思的,但是有一种如果不仔细想想的话,估计是很难理解的。那就是JavaScript中的三目运算符,也叫做三元运算。其实这个如果只说名字的话,大家可能不太明白是啥意思,我们来说的通俗一些,冒号问号,三元运算就是通过冒号问号来构成的。简单来看一下三元运算的表达方式:表达式1?表达式2:表达式3是不是有点懵逼,我当时一开始以为是判断表达式1和表达式2的关系,实则不是。是判断表达式1的真假,然后如果为true则执行表达式2如果为false则执行表达式3。举个简单的例子,我们都知道字母的布尔值都是true,所以我们可以直接进行测试,通过console面板。"s"?1:2如果s为true的话,就输出1如果为false的话就输出2,通过前面我们知道,true执行1false执行2.所以输出的结果就是1。其实还是那句话,JavaScript一些简单的代码直接通过浏览器自带的console面板进行测试就可以了。并且记得字母之类的要是字符串的形式,而非自己一个单独的在这里进行判断哦。其实说了这么多,三元运算和我们的if else运算是基本相同的。但是也是有一些不同的地方,if else语句是没有返回值的,而三元运算是有返回值的。我们有一些语句是需要有返回值才能使用的,比如说console.log(),他需要我们在括号内有返回值才能使用,而我们可以在里面使用三元运算,而不能使用if else。好了,说这么些,实际上三元运算在日常中使用的还是挺多的,不过大部分的语句要我写的话我还是会选择使用if else。我们只要记住三元运算是与if else类似即可。如果有什么疑问,可以在评论区留言,我会在看到的第一时间进行回复的。
2021年01月04日
5 阅读
0 评论
0 点赞
2020-12-31
JavaScript 递增递减运算符前置后置的区别
JavaScript的递增递减运算符前置和后置,我一开始其实是以为没区别的,但是当时老师出了个这个题,做起来很难受。。。for ( var a = 1 , b = 0 ; a < b ; a ++ ){ b = a ; } console . log ( b );大概题就是这么个题,现在看应该是我错了,我当时以为老师出错题了。后来发现还是我太年轻。所以来说一下递增递减运算符前置和后置都有什么区别,其实一般来说,没有什么区别。。。我们可以先定义a = 1;然后分别输出++a和a++,看一下效果。var a = 1 ; console . log ( ++ a ); var a = 1 ; console . log ( a ++ );可以看到,他们是有区别的,这是为什么呢?按照我的理解,应该是它如果读取的是+号会向后继续读取,而读取的是a的话,那么会直接输出a而不管后面的内容了。前置型简单理解就是 先计算再赋值 后置型简单理解就是 先赋值再计算之所以他们有区别,究其根本还是因为运算符的优先级有区别。 优先级 运算类型 关联性 运算符 21 圆括号 n/a(不相关) ( … ) 20 成员访问 从左到右 … . … 需计算的成员访问 从左到右 … [ … ] new (带参数列表) n/a new … ( … ) 函数调用 从左到右 … ( … ) 可选链(Optional chaining) 从左到右 ?. 19 new (无参数列表) 从右到左 new … 18 后置递增(运算符在后) n/a … ++ 后置递减(运算符在后) … -- 17 逻辑非 从右到左 ! … 按位非 ~ … 一元加法 + … 一元减法 - … 前置递增 ++ … 前置递减 -- … typeof typeof … void void … delete delete … await await … 16 幂 从右到左 … ** … 15 乘法 从左到右 … * … 除法 … / … 取模 … % … 14 加法 从左到右 … + … 减法 … - … 13 按位左移 从左到右 … << … 按位右移 … >> … 无符号右移 … >>> … 12 小于 从左到右 … < … 小于等于 … <= … 大于 … > … 大于等于 … >= … in … in … instanceof … instanceof … 11 等号 从左到右 … == … 非等号 … != … 全等号 … === … 非全等号 … !== … 10 按位与 从左到右 … & … 9 按位异或 从左到右 … ^ … 8 按位或 从左到右 … | … 7 逻辑与 从左到右 … && … 6 逻辑或 从左到右 … || … 5 空值合并 从左到右 … ?? … 4 条件运算符 从右到左 … ? … : … 3 赋值 从右到左 … = … … += … … -= … … **= … … *= … … /= … … %= … … <<= … … >>= … … >>>= … … &= … … ^= … … |= … … &&= … … ||= … … ??= … 2 yield 从右到左 yield … yield* yield* … 1 展开运算符 n/a ... … 0 逗号 从左到右 … , … 我们可以看到后置运算的优先级是大于前置的,所以前置是先运算再传值,而后置是先传值再运算。其实也就是我前面所说的,++在前面,所以我们先运算然后再传值,而++在后面的话,我们就先传值再运算。并且其实后置的话,并非不进行运算了 ,只是如果想要看到效果的话,需要改一下前面的代码。 var a = 1 ;console . log ( a ++ ); console . log ( ++ a );可以看到结果为第二个结果为3,所以其实只是不显示而已,并非不执行。
2020年12月31日
3 阅读
0 评论
0 点赞
2020-12-31
JavaScript 布尔值和数值比较大小
简单介绍一下JavaScript中的布尔型和数值型的比较把。今天在今年的最后一天中,我决定多发几篇文章纪念一下,哈哈,主要是有好多话想说,所以准备多发几篇文章。其实这个我在当时做题的时候哦没有什么感觉。但是事后同学讨论的时候,说怎么怎么样,让我很是疑惑。我记得当时的题时while(a<b<c)然后执行数值转换a给b,b给a,c自减。大概重现一下的话。 a = 1 ; b = 2 ; c = 2 ; while ( a < b < c ){ e = a ; a = b ; b = e ; c = c - 1 ; } console . log ( "" + a + b + c ) 大概题目就是这么个题目,其实我一开始确实是想错了,因为当时想的是只执行一遍循环,但是第二次想的时候发现其实应该如果按照我想的,应该是一遍循环都不执行啊,因为a虽然小于b但是b跟c是相等的啊,后来仔细一想,发现其实true是1而false是0,我们比较完之后应该是返回的是true和false啊。所以我当时就这么写的,但是后俩同学非跟我犟。。。于是在console面板调试了一下。不过其实这个在自己输入的时候就能看到下面的结果了。 所以其实可以总结一下: 我们如果是多个数值进行比较大小的话,应该是从左到右开始的,而且应该除了第一个比较的是想要的比较结果,后面的都是数值跟1或者0进行比较大。然后我们其实看JavaScript中的true或者false,其实可以看作是1或者0的,而不是冷冰冰的布尔值。
2020年12月31日
5 阅读
0 评论
0 点赞
2020-12-29
JavaScript switch case语句
JavaScript中的switch case语句,在实际操作中是非常好用的。我们平常使用选择条件控制语句,大多数都是if else if以及else,如果我们有许多判断的话,要写许多段的else if语句,而我们通过使用switch case语句,就会使得过程变得非常简单易懂。switch(n) { case 1: 执行代码块 1 break; case 2: 执行代码块 2 break; default: 与 case 1 和 case 2 不同时执行的代码 }其实关于switch case语句最常用的例子就是选择日期了,比如说输入月份然后输出该月份的天数。然后再比如说输出今天是星期几,都是一些比较常见的例子。举一个获取今天是星期几的例子吧,其实这个需要利用JavaScript内置的函数Date(),这个是有关日期的函数,前面其实有一篇文章讲过,也就是我们首页下面的那个运行时间,就是利用Date()函数来获取时间然后进行计算的。----JavaScript实现网站运行时间首先我们通过getDay()来获取今天的日期,然后再导入到switch进行判断即可。var Today=new Date().getDay(); switch (Today) { case 0: x="今天是星期日"; break; case 1: x="今天是星期一"; break; case 2: x="今天是星期二"; break; case 3: x="今天是星期三"; break; case 4: x="今天是星期四"; break; case 5: x="今天是星期五"; break; case 6: x="今天是星期六"; break; } console.log(x);其实如果想要验证的话,是非常容易的,我们只需要定义一下然后直接输出即可。var Today=new Date().getDay(); alert(Today);switch case语句是一个非常适合在选择条件很多的时候进行使用。不过其实说真的,switch case的作用完全可以用if else if els替代,但是实际情况下怎么使用完全看代码编写者的喜好了,当然其实更多的还是要根据实际情况,毕竟我们如果使用switch case语句会非常简单的话,为何不用呢?然后再说一下switch case中类似于if中的else,default,这个类似于else,具体使用可以看下面的例子,判断今天是否是工作日。var Today=new Date().getDay(); switch (Today) { case 0: x="今天是星期日"; break; case 6: x="今天是星期六"; break; default: x="今天是工作日"; break; } console.log(x);具体的作用其实就是else的作用,除了上面的case的情况外,default代表着其余的所有情况。对了,其实大多数,不应该说所有的JavaScript代码都可以通过f12中的console面板进行操作的。好了,今天的JavaScript的switch case语句介绍到这里了,如果有什么疑问,请在评论区留言,我会在看到的第一时间进行回复的。
2020年12月29日
2 阅读
0 评论
0 点赞
2020-12-24
JavaScript 递归函数
浅谈JavaScript中的递归函数,递归函数,其实就是函数调用自身,然后通过条件来进行返回值。一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。通俗来说,JavaScript中递归函数就是为了减少代码数量,举个例子。算阶乘,我们如果不适用递归的话,要写很长一串的代码,不断进行调用就行了,而我们写递归,则只需要写一次。function aaa () { xxxxxxx }然后不断aaa(1)aaa(2)aaa(3)aaa(4)来进行运算。而我们使用递归的话,也就是function aaa(){ if (xxx){ aaa(xxx) } else { return xxxx } } 举一个真实的例子 function f(num) { if(num <= 1) { return 1 } else { return f(num-1)*num } } console.log('10!= '+ f(10)) // 10!= 3628800其实也就是利用函数不断调用,来进行代码的重复利用。本来如果不适用递归函数的话,那么我们不是写循环就是写一个函数然后不断调用,而我们如果使用递归函数的话,就会变成函数里面调用函数,然后调用的函数再调用函数,直到满足条件之后return回去即可。但实际上实际开发中,递归用到的还是比较少的,因为它很占资源。我们平常的代码,都是从上到下执行的,一个执行完JavaScript会利用垃圾回收机制来进行回收内存,然后执行下一个代码,而递归则会使这个函数保留下来,然后等待下个函数,周而复始,一直到满足return条件才开始挨个结束运行。所以我们在运用递归函数的时候,要保证一定要有结束的语句,并且一定可以满足,否则会陷入死循环中,一直调用。。。然后再就是在函数中要调用本函数,要不那里是递归呢?
2020年12月24日
3 阅读
0 评论
0 点赞
2020-12-23
javascript 运算符+=和-=
浅谈JavaScript中运算符+=以及-=遇到的问题。本来其实我觉得我对这个运算符之类的应该是没有什么问题的,但是没想到做题的时候发现还是有问题的,问题就出在了运算符+=以及-=。具体题目:这道题首先答案是D,但是其实打眼一看的话,感觉CD其实是一样的,但是由于这是一道单选题,所以只能选一个。。我当时其实是以为题出错了,没想到仔细了解发现C确实是有问题的。首先大家都知道+-都是运算符,但是他们还是有区别的,不仅仅是一个是加一个是减。+号运算符除了两个数相加以外,还能做到两个字符串相连,或者别的数据类型和字符串相连。比如说1+“a”会编程1a,而-号运算符呢?则会编程NaN。。所以+=其实正确的写法应该是表示相加或相连并赋值。这样就对了,可以说这道题其实出的不太严谨,也可以说就是故意的。。。。不过我猜这道题如果AB中改对一个然后改成多选,可能大多数人都会直接选A/B然后跟上CD。。简单说一下我当时的思路,既然JavaScript运算符的题,那么我首先就是去百度查询了一下JavaScript运算符,发现其实应该是没啥问题的啊,然后去52发帖子问了一下,大佬还是很快就给了解答。。。其实问题就是出在了+号不光可以相加还可以相连。我当时是通过f12在console测试的,然后首先定义一个a=1,之后再测试a+=1,结果为2,然后测试a-=“a”发现结果为NaN,之后再测试a+=“a”发现结果为NaNa。所以 其实当+号运算符两边为数字的话,那么结果就为数字,但是如果有一方为字符串,那么+号运算符则会变成连接符 。但是假如我一边是数字,一边是字符串,但是字符串的内容为数字呢?哈哈,结果其实还是字符串相连,并没有出现想象中的相加。 总结一下,如果+号的左右都为数字,那么结果为相加,但是如果有一方为字符串的话,就会变成字符串的相连。有什么疑问的话,可以在评论区留言,我会在看到的第一时间进行回复的。
2020年12月23日
2 阅读
0 评论
0 点赞
2020-12-22
浅谈javascript的标识符
浅谈JavaScript中标识符的一些规则,其实说到这个,还是因为之前做的题的缘故,所以才在这里说一下JavaScript中的标识符。看过昨天发的文章,应该都知道最近在与传智进行作业的爬取, python 爬取传智播客作业题目然后呢,因为只能爬出来自己的答案,害怕出问题,所以没有保存起来,然后爬出来的数据自己挨个先做后查的,不过当时做到关于标识符的时候,还是有点疑惑的。6.以下属于合法标识符的是()。A.varB.77nameC.__name__D.$name其实我有疑惑的就是A选项var了,之所以有疑问,是因为最近在写python爬虫嘛,而python其实可以用一些关键字命名的,比如说我当时用str命名,然后就一直报错。。。。。不过是因为我在写循环,如果不循环的话没问题。所以我当时觉得A也行。结果没想到不行。后来自己尝试了一下发现报错了。。。。。很尴尬,所以好好看了一下关于标识符的知识。首先, JavaScript中标识符可以有数字,字母,_和$四种。而虽然标识符可以由这四个组成,但是并不是每一个都能当作开头的,其实也就是数字不能当作开头罢了。然后再就是不能是JavaScript中的保留字和关键字,比如说var之类的 。其实最容易的办法就是自己想一个名字, 全部都是自己想的一般就不会出错了,特别是使用拼音,绝对不会出错 。。。。不过其实为了好看,所以标识符还是有命名规则的( 非强制 ),驼峰命名法,首字母小写,然后每个单词的首字母大写,比如说myUserName,myBaby等,不过其实也就是为了好看而已,你如果喜欢全大写全小写也是没人管你的。不过JavaScript其实也是大小写敏感的,不要想出一出是一出。如果有什么不懂的,可以在评论区留言,我会在看到的第一时间进行回复的。
2020年12月22日
3 阅读
0 评论
0 点赞
2020-12-17
浅谈HTML DOM
这个其实还是因为一道题,问html中的dom根节点是哪个。这个其实我当时第一反应是body的,但是后来一想,根节点,也就是最头上的那个,没有自己的父元素,那这个肯定是html啊,然后百度一查,发现确实是html。在 HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的 HTML。而在dom中,标签们都属于什么节点呢?接下来看一下解析。整个文档内容是一个文档节点每个HTML中的元素是都是元素节点HTML的元素内的文本是文本节点每个HTML属性是都属于属性节点注释则是注释节点而dom中的html文档则被当作节点树了。其实这个dom说简单也是非常简单的,只要记住每个节点都有自己的匹配对象就可以了,所有的标签都是可以通过dom来获取。简单举个例子,在<title>DOM 教程</title>中,元素节点 <title>,包含值为 "DOM 教程" 的文本节点。 获取节点其实JavaScript获取节点我认为最好的是通过id来获取,document.getElementById()这个方法,通过元素的id来获取改节点,然后进行操作。随便举个例子。<div id="aaa"></div><script>document.getElementById("aaa")</script>这样也就通过ById来获取该元素了。不光可以通过id来获取对象,还可以通过class,通过tag,通过name来获取。getElementById()getElementsByTagName()getElementsByClassName()最常用的就是这三个了,其实通过原生JavaScript来获取对象不是很方便,通过jQuery来获取的话实非常容易的,不过其实各有各的好处吧。一般操纵dom的都是方法,通过方法来对对象进行操作。 appendChild() 把新的子节点添加到指定节点。 removeChild() 删除子节点。 replaceChild() 替换子节点。 insertBefore() 在指定的子节点前面插入新的子节点。 createAttribute() 创建属性节点。 createElement() 创建元素节点。 createTextNode() 创建文本节点。 getAttribute() 返回指定的属性值。 setAttribute() 把指定属性设置或修改为指定的值。 比如说通过点击来使一个div修改颜色,可以是通过.style来操作,其实也可以通过上面的方法来操作的,也可以通过setAttribute()来修改,亦或者通过在style里添加一个没人用的class,给里面添加想要的属性,然后通过document.getElementById("").classList.add("");这个来增加上那个class,这样就会使div获得该class内的属性了。其实dom可以完成所有的html操作,甚至可以只写个html框架出来,然后其余的全部都靠JavaScript来进行修改的。这个也是目前最流行的方法了,通过JavaScript来渲染页面。
2020年12月17日
4 阅读
0 评论
0 点赞
2020-12-12
JavaScript 实现网站运行时间功能
JavaScript实现获取网站运行时间功能,其实这个功能也就是我们网站首页的下面的代码,获取网站运行时间。<script> function runtime(){ var oldtime = new Date("2020-10-20 8:32:00"); var nowtime = new Date(); var timeDifference = (nowtime.getTime()-oldtime.getTime()); var ms = 86400000; var day = Math.floor(timeDifference/ms); var hours = Math.floor(((timeDifference/ms)-day)*24); var minutes = Math.floor((((timeDifference/ms)-day)*24-hours)*60); var seconds = Math.floor(((((timeDifference/ms)-day)*24-hours)*60-minutes)*60) rtime.innerHTML ="本站大概运行了有: "+day+"天"+hours+"时"+minutes+"分"+seconds+"秒" } setInterval(runtime,1000); </script>其实这个也就是通过函数获取本地时间,然后再根据设置的时间进行相减,之后通过算法计算时间。如果想要改成你需要的代码,只需要修改var oldtime = new Date("2020-10-20 8:32:00");内的时间即可,这里就会自动根据现在的时间进行换算的。今天有点小忙,所以简单来一篇。
2020年12月12日
5 阅读
0 评论
0 点赞
2020-12-11
Javascript window.onload内的函数无法调用
其实这也是今天上课看到的,不过其实我知道是什么问题。不过这个貌似许多初学者都不会,所以准备跟大家学习一下。众所周知,JavaScript与html代码在同一页的时候,可能会因为JavaScript代码太多加载太慢导致网页打开速度缓慢,所以就有把内容放在window.onload里使得html加载完之后再加载JavaScript代码。但是今天上午调试的时候,发现出现了一个错误。console面板的提示是函数找不到,这是为什么呢?因为把想调用的函数放在了window.onload里,所以这个函数就会在最后才会加载。而这就是问题所在了。Uncaught ReferenceError: aaaa is not defined at HTMLInputElement.onclick报错就是这个,而我的代码呢?<body> <div> <input type="text"> <input type="button" value="获取内容" onclick="aaaa()"> </div> <script> window.onload = function () { var a = document.getElementsByTagName("input")[0]; function aaaa() { alert(a.value); } } </script> </body>就是一个简单的获取文本框内输入的内容。简单解释一下,这是因为window.onload会使匿名函数里面的内容在页面加载之后才会加载,而我们在页面加载到input:button的时候,里面有一个onclick,所以网页会停下继续加载而去寻找aaaa()这个函数,而我们的这个函数要在网页全部加载完才会加载,所以就找不到这个函数了,而你到最后才加载了window.onload内的内容也是没有用的了。而解决这个问题的答案很简单,把需要调用的内容拿出来即可,不过这其实也是推荐使用js文件的原因,不过其实如果把script的代码放在</body>上面,html代码的最后面的话,其实没比较加window.onload这个了。不过假如说你使用文件导入的方法,其实也是推荐放在html代码的最后面的。问题简简单单的解决了,有没有收获呢?如果有什么不懂的可以在评论区留言,我会在看到的第一时间进行回复的。其实之所以这么短是因为今天突然想整个毛概的题库出来做做,所以文章简短,哈哈,最近几篇应该都差不多的。
2020年12月11日
3 阅读
0 评论
0 点赞
1
2