找出水仙花数的实战。忘记了%是求余运算…写麻烦了。
var a = parseInt(i/100);
var b = parseInt(i/10) - 10*a
var c = i - 100 * a - 10 * b;
if (i == (a * a * a + b * b * b + c * c * c))
{
str = str + i + "、";
}
结果一不小心写成了
var c = i - 100 * a - 100 * b;
得出结果只有407.。。。瘸了。
var arrimg = document.getElementsByClassName("imgl")
var i = 0;
setInterval(function(){
alert(i)
getComputedStyle(arrimg).opacity = "0";
getComputedStyle(img[i]).opacity = "1";
i++;
i = i % arrimg.length;
}, 2000)
最后提示Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'。似乎错得有点儿远……
function lazy_sum(arr) {
var sum = function () {
return arr.reduce(function (x, y) {
return x + y;
});
}
return sum;
}
var f = lazy_sum([1, 2, 3, 4, 5]); // function sum()
f(); // 15
const testReqs = new Array(5).fill(0).map((_,i)=> async ()=>{
console.log(`start ${i}`);
await new Promise((res)=>setTimeOut(res, i * 1000));
console.log(`done ${i}`);
});
function run(reqs, n){
// your code here
}
run(testReqs, 2);
<frameset rows="50%,50%">这个比例其实用1,1也是一样的效果。好像依据的是两个数值之间的比值。
但是只用rows="50%"就不行。
为什么呢。一个文档只用一个框架,这个框架占据页面的50%不行吗。疑问*1
有没有那种总结了所有标签的所有属性的使用手册(
大概搜了一下好像没有
后来又找了廖雪峰的学习教程去看。
那甚至不如菜鸟的话……可以直接看菜鸟吗
另外html一个个标签去看 那可太枯燥了
知道个div和标签需要闭合即可
学css时再把html的层级关系&语义化搞清楚
看到网站有好看的效果就右键->检查 看看人家html和css怎么写的
这样学的话更有积极性
我不仅一个一个看还一个一个试
css和js也在同时看,大概是看一天html看一天css看一天js这样
只能看网站,或者看书
路线图除了第一个原版都打不开。
对我来说到javascript就叫牛逼了!
会科学上网和具有一定的英语水平学起来很快的,遇到问题用谷歌查英文资料效率更快
本来我想到你是学俄语的,英语水平应该也不会差,这样学起来应该是游刃有余了,然后看到你在楼上的吐槽……
只是止步 js 吗?后面还有那么多玩具可以玩
现在js是高山,我还处于高山仰止的阶段,玩具什么的等我牛逼了再说
其实已经在w3c看过一部分了但是菜鸟确实更详细一些。
js还没开始。工作去了/
JavaScript演示中通常都是onlick="myfunction()",改变字体颜色等等,但是只能改变一次。
按一次修改再按一次复原的话是怎么办呢
疑问*3,有全半角转化吗
按一次修改再按一次复原就先记录当前效果再改成另一个效果
如果想要用百分比设置盒子的宽度以自适应各个屏幕宽度,并且不会随着padding和border而放大,用box-sizing:border-box
难道是二十年后来挖坟
parseInt提取整数 parseFloat提取浮点数
j=i++和j=++i的区别 前者先赋值再自增,后者先自增再赋值。
上面这条做题的时候忘记了。唉
var a = parseInt(i/100);
var b = parseInt(i/10) - 10*a
var c = i - 100 * a - 10 * b;
if (i == (a * a * a + b * b * b + c * c * c))
{
str = str + i + "、";
}
结果一不小心写成了
var c = i - 100 * a - 100 * b;
得出结果只有407.。。。瘸了。
我又瘸了。
!是非运算符。但是e是啥,这题目为什么没头没尾的
i=0 ; if(i=0) alert("true");else alert("false")
false
i=1 ; if(i=0) alert("true");else alert("false")
false
i=0 ; if(i=1) alert("true");else alert("false")
true
i=1 ; if(i=1) alert("true");else alert("false")
true
i=1 ; if(i==true) alert("true");else alert("false")
true
我搞了好久才搞明白这其中的逻辑。就是先赋值,再判断布尔值。0在布尔值中是false
而且很多语句我都是自己想当然瞎写的。写不出来简直太正常了。
太好了不是因为我比较笨
发现问题之后重新梳理了一遍,之后就顺利多了。
而且为了方便扩展做了一个输入口,输入任意大于1的数字都可以输出大小不同的菱形。
不过我只会空格+换行,而乘法表有的位数不一样,上下就没对齐……简直逼死强迫症。
这应该不是我现在的水平能解决的问题吧,保留疑问*4
发现好多好多问题。
最大的问题就是我时常想当然瞎写。
我以为这句话是这个意思,然后刷刷刷写完,调试没结果,再反过去检查,看了半天,哦原来这句不是这个意思。
也就十来行的代码,愣就是出不来结果,最后找错误找出三四个。费时又费力……
“您已超过72%的学习者”
好!
鼓掌!
建议所有网课网站都这样在下面加一个排行榜:
您的当前排名:xx%
您的当前等级:xx
距下一级还需经验:xxshi
签到成就:您已连续学习xx天,连续签到一个月获得称号“学习新星”
氪金解锁下一课。50学习石抽一次。500抽十次,加送保底新课。
648可以直接全开所有课程。
买了就等于学了.jpg
1到m之间的随机整数:Math.floor(Math.random()*m)+1
n到m之间的随机整数:Math.floor(Math.random()*(m-n+1))+n
如果需要让用户输入的内容成为节点的一部分,需要以下几步:
1.document.getElementById()(或者classname或者tagname)获取用户输入的内容
2.document.createTextNode()把内容转化为文本节点
3.document.createElement()创造一个新的元素节点
4.节点.appendChild()把文本节点插进新元素
5.节点.appendChild()把新元素插进已有节点。
(是不是有一点点过于麻烦了)
可以抽奖了
考虑一个半径为1的圆,不同角度各自对应不同弧长
360°就是周长,所以是2PI
180°是周长的一半,所以是PI
但是完全忘记了……
我的数学知识就是高中水平
把一个圆周分成2pi份,每一份就是1弧度。
半个圆周是pi,直角是pi/2
上面这个函数没有效果,教程说是闭包问题,不用管,把
然后去搜了一下闭包是什么,发现更加迷茫。
myFunction里面虽然没有明确声明event这个参数,但是是可以调用它的
这样,每次点击someObj,这个事件类型(这里自然是click)就会输出到console
感觉好像懂了。闭包就是让一个函数内部的变量可以在函数外部使用和修改的函数。
最后两个思考题也做对了。但是回到这题还是没懂。。。
调试了一下,发现显示Cannot read property 'style' of undefined
尝试修改了一下,注释掉for循环
加一句 var i = 1 成功输出。
恢复for循环,在循环里另外引入一个a
结果是不论点哪个元素,都只能让最后一个元素变红。
把oLi[a ].style改成oLi[i ].style仍然undefined
我的理解:
浏览器在加载完window.onload函数后已经执行了for循环,在执行for循环的时候,定义了数个没有被调用的oLi[i ],就是oLi[0]oLi[1]oLi[2],在执行完循环内所有代码块之后,再等待事件发生。而加了this就会不一样。至于this是个什么机制,还没搞懂。
为了验证,在源代码语句前面加了一句alert(i)之后,再调试,发现不论点击哪个li,都没有元素变红,然后提醒3……
for循环会在不满足判定条件之后再执行一次i++?
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。
我先保留疑问,等学到再回来看
另外能不能帮我看看我楼上的理解是不是对的……
再次拜谢
说来为什么不看廖雪峰的
html什么的就别学了吧,知道div input就够了,又不是不能用
比如
edit: 去掉匿名函数
html早没看了,现在再看js入门。
按这进度差不多下个星期能开始看廖的教程了。
update: 原来大家都知道。。。
其实java和python都有学过。都是学到循环就宣告放弃。这js我还坚持得挺久的。可能因为比较看得见成果吧(
虽然还什么都不会,但是已经可以瞎b写网页了呢
但是在搜索let的过程中发现
var i = 5;
for (var i = 0; i < 10; i++) {
// 一些代码...
}
// 这里输出 i 为 10
let i = 5;
for (let i = 0; i < 10; i++) {
// 一些代码...
}
// 这里输出 i 为 5
刚好解答了我之前关于for的疑问
oLi.onclick=function 这一句是定义了一个click事件,如果你点击了网页上相应的element,就会执行这个function,而由于你的代码是在onload之后执行的,所以等到你点击网页触发事件的时候,for循环已经结束,function里面的oLi不再具有意义了。
function里面的this指代oLi本身,这个还挺常用的
不过我记得在HTML里面定义事件的话,需要给function的参数里面加上self,不然this就用不了
----
记错了,是this不是self
我已经超越了78%的学习者。
懂了。等级越高升级所需经验越高。
我学js的初心5555
一开始想学js是想实现以下效果:
1.定时切换图片abcde
2.为abcde设置不同的切换效果(渐隐或者轮滑等)
3.有角标圆点,点击可直接切换到相应图片
4.点击左右箭头切换上一张/下一张
不用循环语句也可以循环i,这思路牛逼啊
https://www.jianshu.com/p/8069ce7682b3。
好像除了数据库以外,实现假子之前说的功能并不难。
还应该可以用来自制学习词典背诵词典之类的吧。
不愧是牙疼。
抱拳
看到那句第一反应是"我基础差到一个刚出生的小孩都比我效率高?"
没忍住呛了一下。
不好意思。
所以能不能问下为什么和娃一起学能提高效率……
还好没有直接看。
比如想要按某一种规律链接数组各元素,
arr = [a,b,c,d,e]
会es6:
不会:
基础如果不行,连自己能干什么都不清楚。更别说写项目了
非要说有什么目标的话就是写一个轮播图吧,上面也有说过就是想自己做网站首页轮播图才来学前端的。
学到定时器之后才觉得,欸自己似乎离轮播图近了一点点。css我只看了一点选择器颜色文字背景啥的。动画效果什么都没学到。
感觉还是需要补基础
不过还是谢谢建议!等我基础打好了就会考虑自己写项目啦
如果能写超合金组件就更棒啦hhhh
……为什么不直接用ps呢……虽然可能没有css3快且方便,但是ps功能更多更好看呀……
但是好像破解版ps用不了,需要下载Adobe Extension Manager
我感觉我思路很对啊。为什么不动呢。
估计又是因为某些语句写错了吧……
找了半天虫,
没反应,显示Uncaught ReferenceError: imgl is not defined
可是我明明html里写了
并且上文的alert也全部包在了一个window.onload里面。
这样也出现undefined是为什么……
真的吐血了
明天试试,代码在公司电脑上。
谢谢谢谢
不过关键句语法好像错得很离谱……我先搁置
然后就写出了这种登西:
最后提示Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'。似乎错得有点儿远……
这样可以拿到单独的 Element (当然 let x = arrimg[0] 也可以) 传入 getComputedStyle,但是返回值是只读的,赋值会报错
正确写法我也不会,我只拿 js 写过脚本和一个用 Vue 写的静态网页
修改opacity的话,用element.style.opacity就可以了吧
又想当然瞎写了我
属性都是可以在js改的
听了都要枪毙。
我写的好烂
用tip_i icons_cmt是想从所有回复(不管是直接回复还是楼中楼)中抽取用户是嘛?
match(/,([0-9]+),0\)/)这一串没看懂但是估计是从地址中抓取用户id?
筛重就是如果数组里不包含这个uid,就添加这个uid至数组末尾?
(读码能力exp+100
实现的效果是从所有楼层回复中抽取一个用户(不包括楼中楼),重复发帖无效。
感动哭了。我竟然写出来了5555555555
(不过第一句我是照抄的大佬的……这是小瑕疵,可以忽略!
是百度搜索“数组怎么筛重”之后抄来的一句代码
然后大概看了一下,知道set是一个不允许重复的数组
...new是个什么东西都没整明白。(管他呢能用就ok)
看了下我在学的教程,下一课就能学set和map了。到课上我再深入理解
以后不加分号就没有心理负担了
或者用forEach(function(,,){})
array三个参数是element, index, array
set三个参数是element, sameElement, set
map三个参数是value, key, map
rest参数只能写在最后,前面用...标识
rest的值是一个数组所以也能用forEach
输了100多
我应该更热爱学习一些的
交换两个变量x和y的值:
var {hostname:domain, pathname:path} = location;
js 特色,要自己写个只能接收一个参数的 parseInt()
谢谢大佬,您是天使
成为牛逼的前端总是很难的
这么看来二十年不够hhhh
目前来说 Rust 已经官方地用于写 Web 了(毕竟要把 Firefox 整个搬上去,那 Firefox 的 Web 技术部分当然也要……
等等,不对,也许不是有问题而是我忘记退出循环了
数学全还给初中老师了
为啥要这样多绕一圈
而且为什么在对f赋值的时候,右边lazy_sum的结果只计算到第一层return sum,调用f()的时候又计算了到了第二层return x+y,这个内在逻辑是咋回事
啥玩意啊,哭了
return x + y 不是在第三层吗 (传给 arr.reduce() 的闭包)
arr.reduce() 在 sum() 函数里,没有调用的时候当然不会计算
(function (x) { return x * x }) (3);
那f被赋值的那一句里调用了var sum = function () 里的function ()没?
出现了一点点悖论,我好像理解错了,匿名函数也不是和最外层的函数一起被调用的,因为上面的代码我打印了一下results,结果是三个完整的函数function () {return i * i;}。证明results在被赋值的时候匿名函数没有被调用
打印f结果是function(){},也就是说匿名函数没有被调用。f的赋值语句只是调用了lazy_sum并且把参数传给了arr,之后调用f的时候才计算了function()里的arr.reduce
当x为undefined或者null或者“”时设置默认值为0
很难我就放弃了…(虽然还根本没开始
另外 alert 的话可能不好后续处理,可以增加直接自动回复中奖楼层的选项之类的
直接抽是谁来抽呢,用户还是你呢。用户抽完的话结果怎么反馈给你呢,毕竟弹一个alert的话很好修改的。
我抽奖那确实地狱难度吧
明明一开始说的不重复名单分组,我就按照不重复的思路写了,好不容易写完之后跟我说还是可能有重复的,让我加一行代码保证重复的值不在一个组。
这是一行代码能搞定的事?
这他妈我得整个推翻重写…
元宵节我就不继续折磨自己了,明天再重写。
随机排序分组这个其实excel就能搞定吧,不过我很想试试就答应了
不过感觉自己代码写得好踏马丑啊
而且有一个地方写得特别特别怪,不知道有没有改进的方法。
要求把m个数据随机分成n组,我的做法是设置一个长度为n的大数组,数组中的每一项都是一个小数组,然后再把随机的数据填进去。
但是就有一个问题,要怎么定义一个大数组里是n个数组呢……最后这么写的
太怪了吧也
最后观察了半天,才发现好像是有刷新。导致原本输出了的值又被刷新为了原始值
这才注意到我从网上抄来的css模板里用的是form我没改……改成div以后解决了
我一定加油努力补好基础
发出这种感叹是因为完全不知道应该怎么去应用这些
评论有api使用例
https://developer.mozilla.org/en-US/docs/Web/HTTP
简直就像那个梗图一样……
课本:现在我们来学一下canvas,画线条是path.moveTo(),写文字是.fillText(),各位都懂了吗?是不是很简单呢。
现在练习一下:请根据163数据画出30天交易日的k线图
题目要不写个 协程池 吧:
比如写bgm的爬虫,bgm总共有30w的条目,但是bgm限制同时最多只能有10个http请求,要想最快请求完所有条目,就得尽可能保证同时有10个请求在进行。
假设我有一个请求函数列表,调用它就会建立一个请求并返回一个Promise,实现一个函数,能够同时等待n个Promise,并在其中任何一个Promise返回后调用列表的下一个请求函数创建一个新的Promise,直到列表所有的请求函数都调用完。
可以用下面的例子测试:
学前端不是有什么就怼什么, 东西太多了, 假如目标是要一份工作, 可以百度面试通常问什么
我还不信邪研究了半天(真的半天)最后还是宣告不会。
唯一的成果是看懂题目了
楼下的代码思路大概是这样的:
第一步:建立n个promise协程
首先创建一个长度n的数组,然后map到一个闭包函数,这个函数是async开头的所以返回的是promise,那么我们得到了一个长度n的promise数组,Promise.all用来等待所有的协程执行完:
我们把每一个promise当作一个运行作业的协程,每一个协程里面加入一个循环,每次从请求列表里面取出一个请求并调用(req.shift()是取出并删除数组的第一个元素,这里元素是一个返回promise的函数,所以这里再加一个()调用它并得到promise),直到没有新的请求:
不过愿意写解析帮了大忙了还是感谢!!!我下班了再看看!
自己封装一个 CancelablePromise
附答案: https://juejin.cn/post/6844903533393772557
第一题写了半天愣是不对硬撑着不看解析,头都想秃了。
最后看了解析,哦,没写return
下次写一个function直接先写上return,不需要再删
“巨魔正在攻击你的评论,解决方法是从巨魔的评论中删除全部元音,以消除威胁。”
绝绝子
给的例子是"This website is for losers LOL!"
还真是巨魔。我tm笑死
但是没懂……有啥可焦虑的?
大概是这种感觉
原来改变arr里的element不算改变arr
不过这个机制我没太理解。
有试过在那个ele = ...那句后面用console.log看ele有没有被改变,其实是改变了的。那是在foreach结束以后又变回去了?这中间发生了什么…
说来foreach期间改变数组不是个好习惯吧
还好还好,不是因为思路太奇怪了出现的问题hhhhhhhhh
这谁顶得住啊
这种自言自语也能进年鉴啊
沉迷游戏又ge了。dbq我这就捡起来。