#1 - 2021-1-20 11:15
妄想是不治之症 (水中月是天上月,眼前喵是心上喵)
HTML CSS JS相关学习记录。吐槽为主
业余爱好者,一天看一点点。
经验0 程序知识0
二十年后我一定能成为牛逼的前端的!
希望二十年后这个贴子已经被删掉了
#2 - 2021-1-20 11:18
(水中月是天上月,眼前喵是心上喵)
学习网站是:https://www.runoob.com/
#3 - 2021-1-20 11:21
(水中月是天上月,眼前喵是心上喵)
今天看到了框架部分。
看前面其实都还行,没有觉得特别难。
就是各种标签有点难记,不过觉得有使用手册的话,应该还行八。
到框架这一篇怎么感觉突然步子跨太大扯到蛋了
https://www.w3school.com.cn/html/html_frames.asp
#3-1 - 2021-1-20 11:27
妄想是不治之症
用tiy editor的时候发现的一些些小问题:
<frameset rows="50%,50%">这个比例其实用1,1也是一样的效果。好像依据的是两个数值之间的比值。
但是只用rows="50%"就不行。
为什么呢。一个文档只用一个框架,这个框架占据页面的50%不行吗。疑问*1
#3-2 - 2021-1-20 11:34
妄想是不治之症
删除了回复
#3-3 - 2021-1-20 11:54
妄想是不治之症
才发现w3c使用手册里只有标签,没有属性。
有没有那种总结了所有标签的所有属性的使用手册(
大概搜了一下好像没有
#3-4 - 2021-1-20 11:55
妄想是不治之症
删除了回复
#3-5 - 2021-1-20 14:59
妄想是不治之症
换成菜鸟了(bgm24)
#3-6 - 2021-1-30 14:39
滾滾洗衣君
我的天,2021年还用 frame ,w3c 真的害人不浅啊,唉,能怎么办,谁让 w3c 懂新手。
#3-7 - 2021-1-30 15:07
妄想是不治之症
滾滾洗衣君 说: 我的天,2021年还用 frame ,w3c 真的害人不浅啊,唉,能怎么办,谁让 w3c 懂新手。
大家都说w3c不好,我就换成菜鸟了。(bgm30)
后来又找了廖雪峰的学习教程去看。
#4 - 2021-1-20 11:23
(miaow~~~)
插眼围观非项目驱动自学进程实录 ~ (bgm71)
#5 - 2021-1-20 12:10
(DD雷达搜寻中...?)
建议去MDN 这个国内w3school甚至不如菜鸟(bgm38)
学习 Web 开发 | MDN
https://developer.mozilla.org/zh-CN/docs/Learn
#5-1 - 2021-1-20 14:40
妄想是不治之症
看过……但是不少文章没有中文翻译(bgm38)
那甚至不如菜鸟的话……可以直接看菜鸟吗(bgm38)
#5-2 - 2021-1-20 17:26
頂上ノ月🌙
妄想是不治之症 说: 看过……但是不少文章没有中文翻译
那甚至不如菜鸟的话……可以直接看菜鸟吗
查api文档优先MDN(bgm38)
另外html一个个标签去看 那可太枯燥了
知道个div和标签需要闭合即可
学css时再把html的层级关系&语义化搞清楚
看到网站有好看的效果就右键->检查 看看人家html和css怎么写的
这样学的话更有积极性(bgm38)
#5-3 - 2021-1-20 17:43
妄想是不治之症
🍋LautlosP🍋 说: 查api文档优先MDN
另外html一个个标签去看 那可太枯燥了
知道个div和标签需要闭合即可
学css时再把html的层级关系&amp;语义化搞清楚
看到网站有好看的效果就右键->检查 看看人家h...
再枯燥能有工作枯燥吗
我不仅一个一个看还一个一个试
知道个div和标签需要闭合即可
已经知道了!
css和js也在同时看,大概是看一天html看一天css看一天js这样
#6 - 2021-1-20 12:35
虽然我没用过楼上的网站 但w3school确实很辣鸡
楼主要想好好学建议上个网课
#6-1 - 2021-1-20 14:42
妄想是不治之症
因为是工作摸鱼学,不敢光明正大看网课。(bgm38)
只能看网站,或者看书
#7 - 2021-1-20 12:44
劝伊莫要想不开(bgm38)
路线图(原版)
路线图(ccloli翻译)
再补充一个

另外这个 w3school.com.cn 真的还不如菜鸟,但同样是建议通过 MDN 入门。
#7-1 - 2021-1-20 17:38
妄想是不治之症
感谢链接。已经开始看了。(bgm24)
路线图除了第一个原版都打不开。
对我来说到javascript就叫牛逼了!
#7-2 - 2021-1-20 18:21
弥御水Scyiki
妄想是不治之症 说: 感谢链接。已经开始看了。
路线图除了第一个原版都打不开。
对我来说到javascript就叫牛逼了!
国内的先天劣势(bgm38)
会科学上网和具有一定的英语水平学起来很快的,遇到问题用谷歌查英文资料效率更快
本来我想到你是学俄语的,英语水平应该也不会差,这样学起来应该是游刃有余了,然后看到你在楼上的吐槽……
只是止步 js 吗?后面还有那么多玩具可以玩
#7-3 - 2021-1-21 09:01
妄想是不治之症
弥御水Scyiki 说: 国内的先天劣势
会科学上网和具有一定的英语水平学起来很快的,遇到问题用谷歌查英文资料效率更快
本来我想到你是学俄语的,英语水平应该也不会差,这样学起来应该是游刃有余了,然后看到你在楼上的吐槽……
只是...
我学渣一个(bgm38)不要有什么其他的期盼了。(bgm38)
现在js是高山,我还处于高山仰止的阶段,玩具什么的等我牛逼了再说(bgm38)
#8 - 2021-1-20 16:38
(水中月是天上月,眼前喵是心上喵)
草,看了表单一节。
才发现某些zf公共网站。真就什么花样也没有全是默认啊!!
连框框都是默认的!
#9 - 2021-1-20 16:38
(水中月是天上月,眼前喵是心上喵)
删除了回复
#10 - 2021-1-20 16:57
(只要是春希就可以)
w3school太基础了,三天看完就行了,我有时候忘记了标签怎么用会打开看看。插个眼,看楼主学习,年底没啥工作了,论坛都翻烂了//看楼主学习,我也逛逛学习论坛
#11 - 2021-1-20 16:57
(只要是春希就可以)
删除了回复
#12 - 2021-1-20 17:49
(水中月是天上月,眼前喵是心上喵)
#12-1 - 2021-1-20 17:59
妄想是不治之症
css看到https://www.runoob.com/css/css-howto.html
其实已经在w3c看过一部分了但是菜鸟确实更详细一些。
js还没开始。工作去了/
#13 - 2021-1-21 11:18
(水中月是天上月,眼前喵是心上喵)
1/21
#13-1 - 2021-1-21 11:24
妄想是不治之症
疑问*2
JavaScript演示中通常都是onlick="myfunction()",改变字体颜色等等,但是只能改变一次。
按一次修改再按一次复原的话是怎么办呢
#13-2 - 2021-1-21 11:37
妄想是不治之症
文本转换属性,大小写转换太方便了感动哭了。
疑问*3,有全半角转化吗
#13-3 - 2021-1-21 13:53
頂上ノ月🌙
妄想是不治之症 说: 疑问*2
JavaScript演示中通常都是onlick="myfunction()",改变字体颜色等等,但是只能改变一次。
按一次修改再按一次复原的话是怎么办呢
其实就是按一次就变一次 只是效果一样所以没变化(
按一次修改再按一次复原就先记录当前效果再改成另一个效果
#13-4 - 2021-1-21 14:22
妄想是不治之症
display:block 要给a设置width,加这句。
#13-5 - 2021-1-21 14:32
妄想是不治之症
🍋LautlosP🍋 说: 其实就是按一次就变一次 只是效果一样所以没变化(
按一次修改再按一次复原就先记录当前效果再改成另一个效果
谢谢解答!!!(bgm38)大佬其实不用认真解答我的疑问的hhh因为太多太傻的问题了解答不过来,怕大佬烦。
#13-6 - 2021-1-21 16:07
妄想是不治之症
了解box模型:https://blog.csdn.net/qq_26780317/article/details/80736514

如果想要用百分比设置盒子的宽度以自适应各个屏幕宽度,并且不会随着padding和border而放大,用box-sizing:border-box
#14 - 2021-1-21 11:29
mark
#14-1 - 2021-1-21 13:36
妄想是不治之症
hhhhh又不是教程贴有啥好马的。
难道是二十年后来挖坟
#14-2 - 2021-1-21 14:01
bangumi上单
妄想是不治之症 说: hhhhh又不是教程贴有啥好马的。
难道是二十年后来挖坟
我也在学习前端,看看有没有大佬的建议
#15 - 2021-1-21 17:07
(水中月是天上月,眼前喵是心上喵)
学习记录:
css看到https://www.runoob.com/css/css-boxmodel.html
html看到……html学完了?哦还有html5:https://www.runoob.com/html/html5-intro.html
js一目十行到https://www.runoob.com/js/js-functions.html(因为之前已经看过了)
#16 - 2021-1-22 14:11
(水中月是天上月,眼前喵是心上喵)
今天飘了,找了一些乱七八糟的学习方法和学习网站。
主要是确实感觉菜鸟教程知识点过于多了,记不住。
找了一些捷径。

知乎五周学习前端:https://zhuanlan.zhihu.com/p/81248091
html+css+javascript入门 绿叶学习网 html5+css3+javascript高级 跟课程
es6+sass随便学学 跟课程  vue+VueRouter+vuex+axios框架 跟课程
绿叶学习网:http://www.lvyestudy.com/html/frontend-intro
绿叶学习网推荐学习路线:HTML→CSS→JavaScript→jQuery→HTML5→CSS3→ES6→Vue.js→webpack→Node.js
#16-1 - 2021-1-22 14:21
妄想是不治之症
删除了回复
#16-2 - 2021-1-22 14:43
妄想是不治之症
删除了回复
#16-3 - 2021-1-22 15:19
妄想是不治之症
三目运算符 ?:
parseInt提取整数 parseFloat提取浮点数
j=i++和j=++i的区别 前者先赋值再自增,后者先自增再赋值。
上面这条做题的时候忘记了。唉
#16-4 - 2021-1-23 10:20
#17 - 2021-1-23 09:37
(水中月是天上月,眼前喵是心上喵)
继续找一些捷径网站和方法:
自查做题:https://www.nowcoder.com/activity/oj
不仅有js的,还看见了sql
之前其实在一个破网课公司实习的时候有什么,三周学会数据分析之类的课程,
就是excel+sql。给自己黑箱了一个课程结果两年过去了,我就点开过第一课hhhhhhhh

各种前端学习网站汇总:
https://fe.rualc.com/note/my-rea ... ai-fa-he-bian-cheng
基本都是英文……吐血了
es6教程:https://wangdoc.com/es6/
廖雪峰JavaScript全栈教程:https://www.liaoxuefeng.com/wiki/1022910821149312
#17-1 - 2021-1-23 10:18
妄想是不治之症
删除了回复
#18 - 2021-1-23 11:19
(水中月是天上月,眼前喵是心上喵)
var str = "<p style='font-size:" + i * 5 + "px'>总有刁民想害朕</p>";
这也能行啊。
#18-1 - 2021-1-23 11:49
妄想是不治之症
找出水仙花数的实战。忘记了%是求余运算…写麻烦了。
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.。。。瘸了。
#18-2 - 2021-1-23 11:58
妄想是不治之症
while(!e)中!e是否等价于e!=0
我又瘸了。
!是非运算符。但是e是啥,这题目为什么没头没尾的
#18-3 - 2021-1-23 16:11
妄想是不治之症
今天孩子傻了。
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
#19 - 2021-1-23 16:12
(水中月是天上月,眼前喵是心上喵)
今天就一直在纠结上一楼的问题,给我人纠结傻了,浪费不少时间
学到http://www.lvyestudy.com/javascript/exercise-3
#20 - 2021-1-25 17:25
(水中月是天上月,眼前喵是心上喵)
今天继续写实战。

记录一下犯下的错误:
试图用getelementbyid方法更改html输出效果,结果调试显示Cannot read property innerHTML of null,没法输出结果,因为浏览器默认按顺序加载,而我的html元素放在了script后面。
解决方法1:将涉及DOM读取部分的script放在DOM结构后面。
解决方法2:用window.onload=function(){}把语句括起来,到页面加载结束再运行。
#20-1 - 2021-1-25 17:48
妄想是不治之症
删除了回复
#21 - 2021-1-25 18:40
(水中月是天上月,眼前喵是心上喵)
写了半天还在写作业。。。。。

实战题就写了一道求和的题目
被第二题难到了

第二题是使用循环语句输出这个形状
---*
--***
-*****
*******
-*****
--***
---*
单用for循环的嵌套好像不能解决,用do while试试
#21-1 - 2021-1-26 09:13
妄想是不治之症
孩子真傻了。今天上班继续想,仍然没想出来
#21-2 - 2021-1-26 10:29
妄想是不治之症
强行写了一个三层嵌套的循环结果chrome拒绝运行,强行用edge打开结果把edge整崩溃了。草
#21-3 - 2021-1-26 10:49
此间的少年x
两个两层for循环
#21-4 - 2021-1-26 11:08
妄想是不治之症
删除了回复
#21-5 - 2021-1-26 11:11
妄想是不治之症
删除了回复
#21-6 - 2021-1-26 11:18
妄想是不治之症
此间的少年x 说: 两个两层for循环
谢谢大佬,我才发现不是我不会用循环方法的问题,而是计算机理解的语句总是和我理解的语句不一样的问题。。。比如上面那句是本来就没法运行的,因为一开始a=0就已经跳出循环了。崩溃了简直
#21-7 - 2021-1-26 11:20
妄想是不治之症
删除了回复
#21-8 - 2021-1-26 14:23
妄想是不治之症
原来我写的循环不能成功输出是因为判定语句有问题。
而且很多语句我都是自己想当然瞎写的。写不出来简直太正常了。
太好了不是因为我比较笨

发现问题之后重新梳理了一遍,之后就顺利多了。
而且为了方便扩展做了一个输入口,输入任意大于1的数字都可以输出大小不同的菱形。
#21-9 - 2021-1-26 14:53
妄想是不治之症
第三题是九九乘法表,熟练了之后写得还挺快的。
不过我只会空格+换行,而乘法表有的位数不一样,上下就没对齐……简直逼死强迫症。
这应该不是我现在的水平能解决的问题吧,保留疑问*4
#21-10 - 2021-1-26 16:23
妄想是不治之症
今天是实战的一天。
发现好多好多问题。
最大的问题就是我时常想当然瞎写。
我以为这句话是这个意思,然后刷刷刷写完,调试没结果,再反过去检查,看了半天,哦原来这句不是这个意思。
也就十来行的代码,愣就是出不来结果,最后找错误找出三四个。费时又费力……
#22 - 2021-1-26 17:59
(水中月是天上月,眼前喵是心上喵)
#22-1 - 2021-1-26 18:03
妄想是不治之症
教程第一篇阅读量42775,这一篇阅读量11559
“您已超过72%的学习者”

好!
鼓掌!

建议所有网课网站都这样在下面加一个排行榜:
您的当前排名:xx%
您的当前等级:xx
距下一级还需经验:xxshi
签到成就:您已连续学习xx天,连续签到一个月获得称号“学习新星”

氪金解锁下一课。50学习石抽一次。500抽十次,加送保底新课。
648可以直接全开所有课程。

买了就等于学了.jpg
#23 - 2021-1-27 10:21
(水中月是天上月,眼前喵是心上喵)
数学知识有点不够用了。
在实际开发中,所有角度都是以“弧度”为单位的,例如180°就应该写成Math.PI,而360°就应该写成Math.PI*2
基本可以说完全没理解。
#23-1 - 2021-1-27 10:31
妄想是不治之症
0到m之间的随机整数:Math.floor(Math.random()*(m+1))
1到m之间的随机整数:Math.floor(Math.random()*m)+1
n到m之间的随机整数:Math.floor(Math.random()*(m-n+1))+n
#23-2 - 2021-1-27 14:20
妄想是不治之症
DOM操作,梳理一下过程:
如果需要让用户输入的内容成为节点的一部分,需要以下几步:
1.document.getElementById()(或者classname或者tagname)获取用户输入的内容
2.document.createTextNode()把内容转化为文本节点
3.document.createElement()创造一个新的元素节点
4.节点.appendChild()把文本节点插进新元素
5.节点.appendChild()把新元素插进已有节点。
(是不是有一点点过于麻烦了)
#23-3 - 2021-1-28 17:01
妄想是不治之症
妄想是不治之症 说: DOM操作,梳理一下过程:
如果需要让用户输入的内容成为节点的一部分,需要以下几步:
1.document.getElementById()(或者classname或者tagname)获取用户输入的内...
果然是过于麻烦。原来用innerHTML就完美解决。
#23-4 - 2021-1-28 17:19
妄想是不治之症
妄想是不治之症 说: 0到m之间的随机整数:Math.floor(Math.random()*(m+1))
1到m之间的随机整数:Math.floor(Math.random()*m)+1
n到m之间的随机整数:Math....
啊,会了这个我自己就可以手动roll点了。
可以抽奖了
#23-5 - 2021-1-28 17:37
这个不就是弧度吗
考虑一个半径为1的圆,不同角度各自对应不同弧长
360°就是周长,所以是2PI
180°是周长的一半,所以是PI
#23-6 - 2021-1-28 17:51
妄想是不治之症
说: 这个不就是弧度吗
考虑一个半径为1的圆,不同角度各自对应不同弧长
360°就是周长,所以是2PI
180°是周长的一半,所以是PI
搜了一下弧度。好像模模糊糊有一点学过的印象。
但是完全忘记了……
我的数学知识就是高中水平(bgm38)
#23-7 - 2021-1-28 18:01
妄想是不治之症
说: 这个不就是弧度吗
考虑一个半径为1的圆,不同角度各自对应不同弧长
360°就是周长,所以是2PI
180°是周长的一半,所以是PI
看了下教程然后懂了。
把一个圆周分成2pi份,每一份就是1弧度。
半个圆周是pi,直角是pi/2
#24 - 2021-1-27 15:18
(水中月是天上月,眼前喵是心上喵)
看太多脑子看到不转了。
标记进度:http://www.lvyestudy.com/javascript/object-attributes
#25 - 2021-1-28 17:08
(水中月是天上月,眼前喵是心上喵)
翻开书:动态DOM,DOM遍历嗯嗯懂了,
获取元素嗯嗯懂了……
关上书:刚刚看了啥?
#26 - 2021-1-28 17:17
#27 - 2021-1-29 14:13
(水中月是天上月,眼前喵是心上喵)
一上午啥也没干就在茶话会灌水了我。
反思一下反思一下。
事实证明人真的没法渡人。
我还是先渡己好了。继续看
#27-1 - 2021-1-29 15:37
妄想是不治之症
每次调用一个事件的时候,JavaScript都会默认给这个事件函数加上一个隐藏的参数,这个参数就是event对象。一般来说,event对象是作为事件函数的第1个参数传入的。
完全没懂*2
#27-2 - 2021-1-29 16:27
妄想是不治之症
for (var i = 0; i < oLi.length; i++) 
            {
                oLi[i].onclick = function ()
                {
                    oLi[i].style.color = "hotpink";
                }
            }

上面这个函数没有效果,教程说是闭包问题,不用管,把
oLi[i].style.color
改成this.style.color就可以解决。
然后去搜了一下闭包是什么,发现更加迷茫。
#27-3 - 2021-1-29 17:04
妄想是不治之症
妄想是不治之症 说: for (var i = 0; i < oLi.length; i++)
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;{
&nbsp; &...
这里面有个[i ],所以给显示成了斜体。为了bgm正确显示,在中间插了一个空格。
#27-4 - 2021-1-29 17:15
妄想是不治之症 说: 这里面有个[i ],所以给显示成了斜体。为了bgm正确显示,在中间插了一个空格。
班固米的BBCode支持code标签
oLi[i].style.color = "hotpink";
#27-5 - 2021-1-29 17:18
妄想是不治之症 说: 完全没懂*2
我的理解是,定义事件时指定的callback会自带一个名为event的参数,这个参数可以在callback里面调用,比如说
someObj.addEventListener("click", myFunction);
function myFunction() {
  console.log(event.type);
}

myFunction里面虽然没有明确声明event这个参数,但是是可以调用它的
这样,每次点击someObj,这个事件类型(这里自然是click)就会输出到console
#27-6 - 2021-1-29 17:21
妄想是不治之症
阮一峰牛逼,看了一下他的http://www.ruanyifeng.com/blog/2 ... cript_closures.html
感觉好像懂了。闭包就是让一个函数内部的变量可以在函数外部使用和修改的函数。
最后两个思考题也做对了。但是回到这题还是没懂。。。
#27-7 - 2021-1-29 17:23
妄想是不治之症
说: 班固米的BBCode支持code标签
oLi.style.color = "hotpink";
谢谢大佬!!!刚好正打算提问怎么正常显示
[i]
。。。
#27-8 - 2021-1-29 17:33
妄想是不治之症
妄想是不治之症 说: for (var i = 0; i < oLi.length; i++)
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;{
&nbsp; &...
这里面都只有一个函数。非要说两个的话就是最外面包含了一个window.onload = function(),但是window.onload外面并没有引用i所以应该不存在什么函数外修改函数内变量等问题。。。难道for循环算一个函数吗?
#27-9 - 2021-1-29 18:32
妄想是不治之症
我好像懂了。
调试了一下,发现显示Cannot read property 'style' of undefined
尝试修改了一下,注释掉for循环
加一句 var i = 1 成功输出。
恢复for循环,在循环里另外引入一个a
       var a = i
                oLi[a].onclick = function ()
                {
                    oLi[a].style.color = "hotpink";
                }

结果是不论点哪个元素,都只能让最后一个元素变红。
把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……
#27-10 - 2021-1-29 18:45
妄想是不治之症
删除了回复
#27-11 - 2021-1-29 18:46
妄想是不治之症
所以我的理解应该是对的。只是这里为什么i=3。。。又没懂了(bgm38)
for循环会在不满足判定条件之后再执行一次i++?
#27-12 - 2021-1-29 18:54
妄想是不治之症
说: 我的理解是,定义事件时指定的callback会自带一个名为event的参数,这个参数可以在callback里面调用,比如说
someObj.addEventListener("click", myFu...
辛苦大佬。谢谢谢谢谢谢。
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。(bgm38)
我先保留疑问,等学到再回来看(bgm38)
另外能不能帮我看看我楼上的理解是不是对的……(bgm38)
再次拜谢
#27-13 - 2021-1-29 19:11
ekibun
妄想是不治之症 说: 所以我的理解应该是对的。只是这里为什么i=3。。。又没懂了 for循环会在不满足判定条件之后再执行一次i++?
应该是先i++然后i=3的时候不满足条件跳出了吧。

说来为什么不看廖雪峰的(bgm38)
html什么的就别学了吧,知道div input就够了,又不是不能用
#27-14 - 2021-1-29 19:12
snylonue
妄想是不治之症 说: 辛苦大佬。谢谢谢谢谢谢。
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。
我先保留疑问,等学到再回来看
另外能不能帮我看看...
回调应该就是把一个函数传给另一个函数调用
比如
let func = function(f) { f(); };
let hello = function() { console.log("hello, world"); };
func(hello);

edit: 去掉匿名函数
#27-15 - 2021-1-29 19:30
妄想是不治之症
ekibun 说: 应该是先i++然后i=3的时候不满足条件跳出了吧。

说来为什么不看廖雪峰的
html什么的就别学了吧,知道div input就够了,又不是不能用
懂了。for机制就是这样的,是我没理解清楚。
html早没看了,现在再看js入门。
#27-16 - 2021-1-29 19:34
妄想是不治之症
ekibun 说: 应该是先i++然后i=3的时候不满足条件跳出了吧。

说来为什么不看廖雪峰的
html什么的就别学了吧,知道div input就够了,又不是不能用
廖的是0到高阶。我担心对于小白来说会有点难,目前计划是看完这个再去看廖的,也是一种巩固基础吧。
按这进度差不多下个星期能开始看廖的教程了。
#27-17 - 2021-1-29 20:09
ekibun
妄想是不治之症 说: 廖的是0到高阶。我担心对于小白来说会有点难,目前计划是看完这个再去看廖的,也是一种巩固基础吧。 按这进度差不多下个星期能开始看廖的教程了。
(bgm38)这for循环太阴间了,上面var a=i 改成const a=i 也是对的。js感觉还是不太适合编程入门(bgm38)

update: 原来大家都知道。。。
#27-18 - 2021-1-29 20:51
妄想是不治之症
ekibun 说: 这for循环太阴间了,上面var a=i 改成const a=i 也是对的。js感觉还是不太适合编程入门

update: 原来大家都知道。。。
谁说不是呢,真的阴间(bgm38)但是还能怎么办。学都学了.jpg
其实java和python都有学过。都是学到循环就宣告放弃。这js我还坚持得挺久的。可能因为比较看得见成果吧(
虽然还什么都不会,但是已经可以瞎b写网页了呢(bgm37)
#27-19 - 2021-1-29 21:03
妄想是不治之症
snylonue 说: 回调应该就是把一个函数传给另一个函数调用
比如
let func = function(f) { f(); };
let hello = function() { console.log("hello...
基本可以说没看懂(bgm38)
但是在搜索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的疑问(bgm38)
#27-20 - 2021-1-29 21:15
妄想是不治之症 说: 辛苦大佬。谢谢谢谢谢谢。
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。
我先保留疑问,等学到再回来看
另外能不能帮我看看...
我觉得你的理解基本上是对的。
oLi.onclick=function 这一句是定义了一个click事件,如果你点击了网页上相应的element,就会执行这个function,而由于你的代码是在onload之后执行的,所以等到你点击网页触发事件的时候,for循环已经结束,function里面的oLi不再具有意义了。
function里面的this指代oLi本身,这个还挺常用的
不过我记得在HTML里面定义事件的话,需要给function的参数里面加上self,不然this就用不了
----
记错了,是this不是self
#27-21 - 2021-1-29 22:02
snylonue
妄想是不治之症 说: 基本可以说没看懂
但是在搜索let的过程中发现
var i = 5;
for (var i = 0; i < 10; i++) {
&nbsp; &nbsp; // 一些代码...
}
// 这里输出...
这个好像是关于 var 声明变量的
#27-22 - 2021-1-30 09:52
妄想是不治之症
snylonue 说: 这个好像是关于 var 声明变量的
!讲得很详细。谢谢了!!
#27-23 - 2021-1-30 10:21
妄想是不治之症
说: 我觉得你的理解基本上是对的。
oLi.onclick=function 这一句是定义了一个click事件,如果你点击了网页上相应的element,就会执行这个function,而由于你的代码是在onl...
谢谢谢谢。确认我的理解没有偏差就好。function我没有添加参数欸。。。可能是默认自动添加的?
#28 - 2021-1-29 18:57
(水中月是天上月,眼前喵是心上喵)
(bgm43)又是钻牛角尖的一天(bgm43)
看到http://www.lvyestudy.com/javascript/this
#28-1 - 2021-1-29 19:05
妄想是不治之症
9196/42853
我已经超越了78%的学习者。
懂了。等级越高升级所需经验越高。
#29 - 2021-1-30 11:06
(水中月是天上月,眼前喵是心上喵)
数学知识又有一点不够用了。
js中的小数储存方式是64位浮点数,所以说0.1+0.2不等于0.3,会有差值。
完全没懂*3

看了一下https://www.zhihu.com/question/19848808
好歹是懂了为什么0.2是有问题的。。因为0.2在二进制中是无限循环小数。
那问题又来了。0.2是怎么转换成二进制的……
十进制中的0.5(代表分数1/2)表示二进制中的0.1(等同于分数1/2),我们可以把十进制中的小数部分乘以2作为二进制的一位,然后继续取小数部分乘以2作为下一位,直到不存在小数为止。
#29-1 - 2021-1-30 11:13
妄想是不治之症
实在看不懂。等我什么时候专门去看二进制相关,再研究好了。
#29-2 - 2021-1-30 11:28
妄想是不治之症
终于学到定时器了5555555
我学js的初心5555
一开始想学js是想实现以下效果:
1.定时切换图片abcde
2.为abcde设置不同的切换效果(渐隐或者轮滑等)
3.有角标圆点,点击可直接切换到相应图片
4.点击左右箭头切换上一张/下一张
#29-3 - 2021-1-30 14:04
妄想是不治之症
i = i % colors.length;
不用循环语句也可以循环i,这思路牛逼啊
#29-4 - 2021-1-30 14:35
妄想是不治之症
记录一下闲逛翻到的python爬虫自制简易词典。
https://www.jianshu.com/p/8069ce7682b3
好像除了数据库以外,实现假子之前说的功能并不难。
还应该可以用来自制学习词典背诵词典之类的吧。
#29-5 - 2021-1-30 14:42
妄想是不治之症
document.referrer非常酷,因为我们可以通过它来统计用户都是通过什么方式来到你的网站的。
只是获取地址不难,但是每个地址要统计访问量的话,是不是要用到一些别的方法
#29-6 - 2021-2-1 22:46
snylonue
0.2是怎么转换成二进制的……
类比1 / 3是怎么表示成十进制的
#30 - 2021-1-30 14:12
(小圣杯邀请码: whyjxz14#576501)
楼主执行力还可以嘛,不过基础有点差(bgm38)(bgm38)(bgm38)加油。
不如生个娃一起学多好,提高效率
#30-1 - 2021-1-30 14:26
妄想是不治之症
高情商鬼才。
不愧是牙疼。
抱拳
#30-2 - 2021-1-30 14:59
OH_toothache
妄想是不治之症 说: 高情商鬼才。
不愧是牙疼。
抱拳
(bgm38)(bgm38)我是说你自己生个娃和娃一起学。
#30-3 - 2021-1-30 15:21
妄想是不治之症
OH_toothache 说: 我是说你自己生个娃和娃一起学。
emmm……应该是我理解错了。
看到那句第一反应是"我基础差到一个刚出生的小孩都比我效率高?"
没忍住呛了一下。
不好意思。

所以能不能问下为什么和娃一起学能提高效率……
#30-4 - 2021-1-30 15:27
OH_toothache
妄想是不治之症 说: emmm……应该是我理解错了。
看到那句第一反应是"我基础差到一个刚出生的小孩都比我效率高?"
没忍住呛了一下。
不好意思。

所以能不能问下为什么和娃一起学能提高效率……
不是。就是说。不然你以后还要再教娃。那不就重复劳动了。8102年了不会有人生了娃不学编程吧
#30-5 - 2021-1-30 15:27
OH_toothache
删除了回复
#30-6 - 2021-1-30 15:52
妄想是不治之症
OH_toothache 说: 不是。就是说。不然你以后还要再教娃。那不就重复劳动了。8102年了不会有人生了娃不学编程吧
…不一定吧。我娃的话,爱学啥学啥。啥也不学就上点义务教育课也行。
#31 - 2021-1-30 14:59
(水中月是天上月,眼前喵是心上喵)
js入门看完啦,完结撒花。
总结一下:
补了一点基础。对各种常见的对象方法都有了一点印象。
不至于看了一堆啥也没记住。

读码+100exp
写码+50exp

不足:
距离自己想要实现的效果还有很远。
以及写码过程中最大的感想就是,各种默认效果都太丑了我天。
接下来继续学习廖雪峰的js进阶,然后css的学习要加快了。
还有点点想学canvas动画
#31-1 - 2021-1-30 16:24
妄想是不治之症
廖雪峰的教程,确实高阶,已经直接把es6的内容插进来讲了。
还好没有直接看。
#31-2 - 2021-1-30 16:49
妄想是不治之症
我懂了。。。es6就是方便你简化代码的。
比如想要按某一种规律链接数组各元素,
arr = [a,b,c,d,e]
会es6:
console.log(`欢迎${arr.slice(0,-1)}和${arr.slice(-1)}同学!`);

不会:
console.log("欢迎" + arr.slice(0,arr.length-1) + "和" + arr.[length-1] + "同学!");
#32 - 2021-1-30 18:16
#33 - 2021-1-31 04:51
(✨️make bangumi great again✨️)
删除了回复
#34 - 2021-1-31 04:54
(✨️make bangumi great again✨️)
别刷js题,要学前端直接找个东西,从0开始写,我更偏向先学好css,我就是这样过来的。
前端每个点看上去都很简单很容易入门,但是集合起来就很不容易了。
所以实操才是重点,比如写个bangumi?看看下面的链接,其实就是js写的
(bgm24)
[来自Bangumi for android] 获取
#34-1 - 2021-2-1 16:21
妄想是不治之症
主要是不会(bgm38)
基础如果不行,连自己能干什么都不清楚。更别说写项目了(bgm38)
非要说有什么目标的话就是写一个轮播图吧,上面也有说过就是想自己做网站首页轮播图才来学前端的。
学到定时器之后才觉得,欸自己似乎离轮播图近了一点点。css我只看了一点选择器颜色文字背景啥的。动画效果什么都没学到。
感觉还是需要补基础(bgm38)
不过还是谢谢建议!等我基础打好了就会考虑自己写项目啦(bgm24)
如果能写超合金组件就更棒啦hhhh
#35 - 2021-2-2 17:18
(水中月是天上月,眼前喵是心上喵)
打个标,最近打游戏太困了,上班摸鱼都只想睡觉
http://www.lvyestudy.com/css3/text-style-intro
#35-1 - 2021-2-4 14:22
妄想是不治之症
开始学text-shadow……有亿点点疑惑。
……为什么不直接用ps呢……虽然可能没有css3快且方便,但是ps功能更多更好看呀……
#35-2 - 2021-2-4 14:39
妄想是不治之症
找了一款把ps效果转成代码的插件:http://css3ps.com/Download/
但是好像破解版ps用不了,需要下载Adobe Extension Manager
#35-3 - 2021-2-4 17:22
妄想是不治之症
突然发现。。。我好像。。。可以写简单的轮播图了!立刻试试
#35-4 - 2021-2-4 18:07
妄想是不治之症
妄想是不治之症 说: 突然发现。。。我好像。。。可以写简单的轮播图了!立刻试试
我人傻了。。又和之前写循环的时候一样了,完全不动。
我感觉我思路很对啊。为什么不动呢。

估计又是因为某些语句写错了吧……
找了半天虫,
var arrimg = document.getElementsByClassName(imgl);
alert(arrimg.length)

没反应,显示Uncaught ReferenceError: imgl is not defined
可是我明明html里写了
<div class="imgl" ></div>

并且上文的alert也全部包在了一个window.onload里面。
这样也出现undefined是为什么……
真的吐血了
#35-5 - 2021-2-4 18:22
snylonue
妄想是不治之症 说: 我人傻了。。又和之前写循环的时候一样了,完全不动。
我感觉我思路很对啊。为什么不动呢。

估计又是因为某些语句写错了吧……
找了半天虫,var arrimg = document.getElement...
imgl 是个字符串吧
var arrimg = document.getElementsByClassName('imgl');
#35-6 - 2021-2-4 20:34
妄想是不治之症
snylonue 说: imgl 是个字符串吧
var arrimg = document.getElementsByClassName('imgl');
我当场吐血三升。
明天试试,代码在公司电脑上。
谢谢谢谢(bgm38)
#35-7 - 2021-2-5 10:02
妄想是不治之症
snylonue 说: imgl 是个字符串吧
var arrimg = document.getElementsByClassName('imgl');
好的,错误解决了,再次感谢。
不过关键句语法好像错得很离谱……我先搁置(bgm38)
#35-8 - 2021-2-5 10:09
妄想是不治之症
snylonue 说: imgl 是个字符串吧
var arrimg = document.getElementsByClassName('imgl');
啊还是问一下吧。。。因为我刚学了一个opacity,感觉可以先设置四个div为透明,然后定时器设置每隔多少秒某个div变为不透明。。。
然后就写出了这种登西:
            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'。似乎错得有点儿远……
#35-9 - 2021-2-5 10:55
snylonue
妄想是不治之症 说: 啊还是问一下吧。。。因为我刚学了一个opacity,感觉可以先设置四个div为透明,然后定时器设置每隔多少秒某个div变为不透明。。。
然后就写出了这种登西:
&nbsp; &nbsp;&nbsp; ...
getElementsByClassName 返回的是 HTMLCollection,不能给 getComputedStyle 用
for (let x of arrimg) {
  getComputedStyle(x).opacity = "0";
}

这样可以拿到单独的 Element (当然 let x = arrimg[0] 也可以) 传入 getComputedStyle,但是返回值是只读的,赋值会报错
正确写法我也不会,我只拿 js 写过脚本和一个用 Vue 写的静态网页(bgm38)
#35-10 - 2021-2-5 11:20
妄想是不治之症 说: 啊还是问一下吧。。。因为我刚学了一个opacity,感觉可以先设置四个div为透明,然后定时器设置每隔多少秒某个div变为不透明。。。
然后就写出了这种登西:
&nbsp; &nbsp;&nbsp; ...
如#35-9说的,getElementsByClassName返回的不是element(从函数名本身用了Elements也可以看出来),需要从HTMLCollection里面把element提出来处理才行
修改opacity的话,用element.style.opacity就可以了吧
#35-11 - 2021-2-5 13:47
妄想是不治之症
snylonue 说: getElementsByClassName 返回的是HTMLCollection,不能给 getComputedStyle 用
for (let x of arrimg) {
&nbsp;&nbsp...
我想写的是把数组中的所有元素都设置opacity为不透明(bgm38)。想省点事。
又想当然瞎写了我(bgm38)
#35-12 - 2021-2-6 11:08
妄想是不治之症
说: 如#35-9说的,getElementsByClassName返回的不是element(从函数名本身用了Elements也可以看出来),需要从HTMLCollection里面把element提出来处理...
改了代码。用了children来选中父元素下的所有子元素设置为透明,然后单独将某个子元素设置为不透明,结果语法是没错了,运行却是空白。opacity大概是不支持这种写法吧……放弃了放弃了
#35-13 - 2021-2-6 16:22
妄想是不治之症 说: 改了代码。用了children来选中父元素下的所有子元素设置为透明,然后单独将某个子元素设置为不透明,结果语法是没错了,运行却是空白。opacity大概是不支持这种写法吧……放弃了放弃了
你对opacity的操作不对吧……
属性都是可以在js改的
#36 - 2021-2-5 10:13
(整衣正色 往南三拜 焚琴煮鹤 挂印封金 ... ...)
(bgm38)快进到转岗前端
#36-1 - 2021-2-5 10:29
妄想是不治之症
好家伙直接快进了二十年。
       听了都要枪毙。
#37 - 2021-2-5 10:54
#38 - 2021-2-6 11:01
(水中月是天上月,眼前喵是心上喵)
我飘了。我竟然去看了一眼深度学习是什么东西。
这是我现在配看的东西吗!!(bgm38)
嗨,本来是想写一个准确的根据过往评分数据精准推荐番剧的系统。
然后仔细思考了一下,没准根本不存在什么精准推荐,深度学习的结果是全随机23333333333
收心收心。继续看js进阶。
#38-1 - 2021-2-6 13:49
妄想是不治之症
看了一圈茶话会,又觉得现在抽奖组件需求很高。纯前端抽奖可能做到嘛(bgm38)
#38-2 - 2021-2-6 13:55
Tkzc ⚥
妄想是不治之症 说: 看了一圈茶话会,又觉得现在抽奖组件需求很高。纯前端抽奖可能做到嘛
当然可以做,一会做个试试(bgm37)
#38-3 - 2021-2-6 14:05
妄想是不治之症
妄想是不治之症 说: 看了一圈茶话会,又觉得现在抽奖组件需求很高。纯前端抽奖可能做到嘛
单纯roll点应该还是不难的,想实现很多功能才难,比如用户筛重,没有头绪hhhhhh
#38-4 - 2021-2-6 14:05
妄想是不治之症
Tkzc 说: 当然可以做,一会做个试试
做完可以把代码发给我看一下嘛,哦内盖!
#38-5 - 2021-2-6 17:53
Tkzc ⚥
let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
if($("#comment_list").children()[i].getElementsByClassName("message")[0].innerText == '内容已被用户删除'){
    continue
}
const uid = $("#comment_list").children()[i].getElementsByClassName("tip_i icons_cmt")[0].onclick.toString().match(/,([0-9]+),0\)/)[1]
if(array.includes(uid) == false){
    array.push(uid)
}
}
let win = array[Math.floor(Math.random() * array.length)]
console.log("winner is https://bgm.tv/user/"+win)


我写的好烂(bgm38)
#38-6 - 2021-2-8 10:57
妄想是不治之症
Tkzc 说: let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
...
可以说基本没看懂(bgm38)
#38-7 - 2021-2-8 13:55
妄想是不治之症
删除了回复
#38-8 - 2021-2-8 14:50
妄想是不治之症
Tkzc 说: let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
...
啊我对着bgm网站源码费力理解了一下,还是看懂了大概意思。
用tip_i icons_cmt是想从所有回复(不管是直接回复还是楼中楼)中抽取用户是嘛?
match(/,([0-9]+),0\)/)这一串没看懂但是估计是从地址中抓取用户id?
筛重就是如果数组里不包含这个uid,就添加这个uid至数组末尾?

(读码能力exp+100
#38-9 - 2021-2-8 15:26
妄想是不治之症
Tkzc 说: let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
...
!!!!!!!!!!!!感谢大佬!!!!!!我也成功写出来了55555555

    var commentCount = $("#comment_list").children().length
    var arr = document.getElementsByClassName("userInfo");
    var arruserid = []
    for(i=0 ; i < commentCount ; i++){
        arruserid[i] = arr[i].querySelector('a').href
    }
    arruserid = [...new Set(arruserid)]
    var winner = Math.floor(Math.random()*(arruserid.length))
    console.log(arruserid[winner])

实现的效果是从所有楼层回复中抽取一个用户(不包括楼中楼),重复发帖无效。
感动哭了。我竟然写出来了5555555555
(不过第一句我是照抄的大佬的……这是小瑕疵,可以忽略!
#38-10 - 2021-2-8 15:28
snylonue
妄想是不治之症 说: 啊我对着bgm网站源码费力理解了一下,还是看懂了大概意思。
用tip_i icons_cmt是想从所有回复(不管是直接回复还是楼中楼)中抽取用户是嘛?
match(/,([0-9]+),0\)/)这一...
关键字:jquery, 正则表达式
#38-11 - 2021-2-8 15:31
snylonue
妄想是不治之症 说: !!!!!!!!!!!!感谢大佬!!!!!!我也成功写出来了55555555
&nbsp; &nbsp; var commentCount = $("#comment_list").children(...
为什么不直接用 set(bgm38)
var arruserid = new Set();
for(i=0 ; i < commentCount ; i++){
    arruserid.add(arr[i].querySelector('a').href);
}
arruserid = [... arruserid];
#38-12 - 2021-2-8 15:37
妄想是不治之症
snylonue 说: 为什么不直接用 set
var arruserid = new Set();
for(i=0 ; i < commentCount ; i++){
&nbsp; &nbsp; arruserid.ad...
因为我没有学set(扶额
是百度搜索“数组怎么筛重”之后抄来的一句代码(bgm38)
然后大概看了一下,知道set是一个不允许重复的数组
...new是个什么东西都没整明白。(管他呢能用就ok)

看了下我在学的教程,下一课就能学set和map了。到课上我再深入理解(bgm38)
#38-13 - 2021-2-8 15:47
妄想是不治之症
snylonue 说: 为什么不直接用 set
var arruserid = new Set();
for(i=0 ; i < commentCount ; i++){
&nbsp; &nbsp; arruserid.ad...
另外谢谢大佬的示范,我才发现我几乎每一句都没有标分号……羞愧了(bgm38)
#38-14 - 2021-2-14 19:31
橘枳橼
妄想是不治之症 说: 另外谢谢大佬的示范,我才发现我几乎每一句都没有标分号……羞愧了
JS 大部分情况下不需要分号,有一个代码风格叫做 standard-js,就是认为尽量不加分号,只有当行首是 ([{+- 时,在行首加一个分号。
#38-15 - 2021-2-14 19:51
妄想是不治之症
Εκκολαπτήριο 说: JS 大部分情况下不需要分号,有一个代码风格叫做 standard-js,就是认为尽量不加分号,只有当行首是 ([{+- 时,在行首加一个分号。
!学到了。谢谢。
以后不加分号就没有心理负担了
#39 - 2021-2-8 11:13
(水中月是天上月,眼前喵是心上喵)
我惊了。现在官网下vscode怎么这么慢。。。。。
#39-1 - 2021-2-8 12:01
妄想是不治之症
删除了回复
#39-2 - 2021-2-8 17:01
妄想是不治之症
遍历array,set和map用for of
或者用forEach(function(,,){})
array三个参数是element, index, array
set三个参数是element, sameElement, set
map三个参数是value, key, map

rest参数只能写在最后,前面用...标识
rest的值是一个数组所以也能用forEach
#39-3 - 2021-2-8 17:40
#40 - 2021-2-12 14:14
(水中月是天上月,眼前喵是心上喵)
#40-1 - 2021-2-12 14:27
bangumi上单
太强了,大年初一还在学习,自愧不如👍
#40-2 - 2021-2-12 18:01
妄想是不治之症
勃韭菜 说: 太强了,大年初一还在学习,自愧不如👍
学完那章我就打麻将去了(bgm38)
输了100多(bgm38)
我应该更热爱学习一些的(bgm38)
#40-3 - 2021-2-13 12:57
妄想是不治之症
解构赋值,虽然看懂了,但是就我目前写的一些代码来说完全用不上。。。。先记着好了。
交换两个变量x和y的值:
var x=1, y=2;
[x, y] = [y, x]
#40-4 - 2021-2-13 12:58
妄想是不治之症
快速获取当前页面的域名和路径:

var {hostname:domain, pathname:path} = location;
#41 - 2021-2-13 13:06
(水中月是天上月,眼前喵是心上喵)
用apply方法或者call方法解决this指向不明确的问题。
函数.apply(需要绑定的this变量,[函数的参数])
函数.call(需要绑定的this变量,参数1,参数2,……)
#42 - 2021-2-13 13:21
(愿你们在命运的旷野上不期而遇。)
搞得我也想学了
#42-1 - 2021-2-13 13:59
妄想是不治之症
想学就学(bgm39)
#42-2 - 2021-2-14 19:35
橘枳橼
本赛博共产主义者呼吁你学,人人都应该学。
#43 - 2021-2-13 14:37
(水中月是天上月,眼前喵是心上喵)
绝了,为啥,
之前在公司电脑成功配置了js调试程序,
同样的办法在笔记本上怎么行不通了。。。
哭了(bgm38)
#44 - 2021-2-14 14:16
(水中月是天上月,眼前喵是心上喵)
今天终于知道怎么写脚本了。
原来// ==UserScript==开头的部分是元数据,不能删
之前cedar君把源代码给我,我还问//开头的注释可不可以删掉(bgm38)
尴尬到脚趾抓地,太自作聪明了吧。

昨天的js调试问题还是没解决。(bgm38)
#45 - 2021-2-14 17:22
(水中月是天上月,眼前喵是心上喵)
标记https://www.liaoxuefeng.com/wiki ... 12/1024322552460832
还好廖雪峰的网站上可以直接运行js。
不用我另外调试了。

又出现了一个不太懂的问题。
var arr = ['1', '2', '3'];
var r;
r = arr.map(parseInt);

会有问题是因为map方法的函数只要一个参数,但是map传递的参数有三个,分别是:数组元素、元素索引,数组本身,而paresInt是可以接受两个参数的,第一个是字符,第二个是进制。
#45-1 - 2021-2-14 18:19
snylonue
let r = arr.map((n) => parseInt(n));

js 特色,要自己写个只能接收一个参数的 parseInt()
#45-2 - 2021-2-14 19:00
妄想是不治之症
snylonue 说: let r = arr.map((n) => parseInt(n));
js 特色,要自己写个只能接收一个参数的 parseInt()
还好今天看了这个贴的源码之后去搜了一下=›是什么,不然现在就看不懂了hhhhhh
谢谢大佬,您是天使(bgm38)(bgm38)(bgm38)
#45-3 - 2021-2-14 19:02
妄想是不治之症
snylonue 说: let r = arr.map((n) => parseInt(n));
js 特色,要自己写个只能接收一个参数的 parseInt()
另外能问下js特色是什么嘛(bgm38)别的语言不这样吗?
#45-4 - 2021-2-14 19:34
橘枳橼
妄想是不治之症 说: 另外能问下js特色是什么嘛别的语言不这样吗?
此处的特色就是所有函参表都是变长的。
#46 - 2021-2-14 19:26
(我只知道自己一无所知。)
你还要花 20 年?JavaScript 才 25 年
HTML5 才 6 年
#46-1 - 2021-2-14 19:45
妄想是不治之症
20年后就有别的花样了(bgm38)
成为牛逼的前端总是很难的(bgm38)
#46-2 - 2021-2-14 19:49
橘枳橼
妄想是不治之症 说: 20年后就有别的花样了
成为牛逼的前段总是很难的
20 年后可能是 WebAssembly 完全普及,所有语言都可以写前端
#46-3 - 2021-2-14 19:52
妄想是不治之症
Εκκολαπτήριο 说: 20 年后可能是 WebAssembly 完全普及,所有语言都可以写前端
那不就得所有语言都学嘛(bgm38)
这么看来二十年不够hhhh
#46-4 - 2021-2-14 19:55
橘枳橼
妄想是不治之症 说: 那不就得所有语言都学嘛
这么看来二十年不够hhhh
反过来了,是随便任何一门语言都行。
目前来说 Rust 已经官方地用于写 Web 了(毕竟要把 Firefox 整个搬上去,那 Firefox 的 Web 技术部分当然也要……
#47 - 2021-2-20 23:36
(水中月是天上月,眼前喵是心上喵)
累了。。。。。。好久没看了。但是也不是单纯在玩(bgm38)
#48 - 2021-2-21 20:21
(水中月是天上月,眼前喵是心上喵)
我又!!!坚强地!!打开了!!(bgm38)(bgm38)(bgm38)
在一堆不愿意做的事情中勉强挑中了这个(bgm38)
立个flag,今天彻底学完(理解所有语句并且做出所有题目)2页之后,可以玩银河龙到十一点。
然后洗澡睡觉,耶。
#48-1 - 2021-2-21 21:00
妄想是不治之症
感觉每次对循环的理解都有问题。
等等,不对,也许不是有问题而是我忘记退出循环了(bgm38)
#48-2 - 2021-2-21 21:02
妄想是不治之症
费劲巴拉写了个筛选素数的语句结果还是测试失败……1竟然不是素数!
数学全还给初中老师了(bgm38)
#48-3 - 2021-2-21 21:33
妄想是不治之症
sort 函数的底层是用 TimSort 算法实现的
搜了一下TimSort,感叹一声大佬们真的厉害
#49 - 2021-2-21 21:34
(水中月是天上月,眼前喵是心上喵)
#50 - 2021-2-22 18:55
(水中月是天上月,眼前喵是心上喵)
继续flag,彻底学完两页之后可以玩野良皇女(bgm39)(bgm37)
#50-1 - 2021-2-22 18:58
妄想是不治之症
草出现了紧急事态,暂停一天
#51 - 2021-2-23 22:30
(水中月是天上月,眼前喵是心上喵)
高阶函数闭包,我人傻了。
明明之前专门去搜索闭包,还觉得很好懂。现在怎么感觉一个字都看不懂(bgm38)
#51-1 - 2021-2-23 22:40
妄想是不治之症
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

为啥要这样多绕一圈(bgm38)(bgm38)
而且为什么在对f赋值的时候,右边lazy_sum的结果只计算到第一层return sum,调用f()的时候又计算了到了第二层return x+y,这个内在逻辑是咋回事(bgm38)
啥玩意啊,哭了(bgm38)(bgm38)(bgm38)
#51-2 - 2021-2-23 22:54
snylonue
妄想是不治之症 说: function lazy_sum(arr) {&nbsp; &nbsp; var sum = function () {&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;r...
因为是 “lazy” 嘛(bgm38)需要用的时候才会计算
return x + y 不是在第三层吗 (传给 arr.reduce() 的闭包)
arr.reduce() 在 sum() 函数里,没有调用的时候当然不会计算
#51-3 - 2021-2-23 22:57
妄想是不治之症
创建一个匿名函数并立刻执行
(function (x) { return x * x }) (3);
#51-4 - 2021-2-23 23:13
妄想是不治之症
snylonue 说: 因为是 “lazy” 嘛需要用的时候才会计算
return x + y 不是在第三层吗 (传给 arr.reduce() 的闭包)
arr.reduce() 在 sum() 函数里,没有调用的时候当然...
我费力理解下,就是说在f赋值那一句里,sum()只是作为结果出现了,并没有被调用。f被调用之后,sum才被调用了?
那f被赋值的那一句里调用了var sum = function () 里的function ()没?
#51-5 - 2021-2-23 23:16
妄想是不治之症
妄想是不治之症 说: 我费力理解下,就是说在f赋值那一句里,sum()只是作为结果出现了,并没有被调用。f被调用之后,sum才被调用了?
那f被赋值的那一句里调用了var sum = function () 里的funct...
哦我傻了,匿名函数是立刻调用的,也就是说和lazy_sum同时被调用
#51-6 - 2021-2-24 00:12
妄想是不治之症
for循环,阴间,太阴间了。又出现了#27类似的问题,这次稍微理解了,但是没有特别理解。
function count() {
    var arr = [];
    for (var i=1; i<=3; i++) {
        arr.push(function () {
            return i * i;
        });
    }
    return arr;
}

var results = count();
var f1 = results[0];
var f2 = results[1];
var f3 = results[2];

f1(); // 16
f2(); // 16
f3(); // 16

出现了一点点悖论,我好像理解错了,匿名函数也不是和最外层的函数一起被调用的,因为上面的代码我打印了一下results,结果是三个完整的函数function () {return i * i;}。证明results在被赋值的时候匿名函数没有被调用
#51-7 - 2021-2-24 00:22
妄想是不治之症
妄想是不治之症 说: 哦我傻了,匿名函数是立刻调用的,也就是说和lazy_sum同时被调用
看来还是得自己试,实践出真知。
打印f结果是function(){},也就是说匿名函数没有被调用。f的赋值语句只是调用了lazy_sum并且把参数传给了arr,之后调用f的时候才计算了function()里的arr.reduce
#51-8 - 2021-2-24 00:42
妄想是不治之症
为x设置默认值:x = x || 0。
当x为undefined或者null或者“”时设置默认值为0
#52 - 2021-2-24 00:53
(水中月是天上月,眼前喵是心上喵)
打标:https://www.liaoxuefeng.com/wiki ... 12/1023021250770016
特别开心凭自己的力量看懂了闭包的逻辑,以为能坚持学到最后,结果最后一个脑洞大开栏目给我整破防了。真就一个字没懂(bgm38)
阿隆佐·邱奇是什么神仙啊喂(bgm38)
#53 - 2021-2-25 11:35
(水中月是天上月,眼前喵是心上喵)
generator:由function*定义,除了return语句,可以用yield返回多次。
generator直接调用会创建generator对象,不会执行。
调用generater对象的方法:
1.generator对象.next()
next()方法会执行generator的代码,然后,每次遇到yield ;就返回一个对象,然后“暂停”。
2.for ... of generator对象{...}
因为generator可以在执行过程中多次返回,所以它看上去就像一个可以记住执行状态的函数,利用这一点,写一个generator就可以实现需要用面向对象才能实现的功能。
#54 - 2021-2-25 20:58
(水中月是天上月,眼前喵是心上喵)
或许我真的应该找一个项目来写了,不然一直憨学感觉没用啊(bgm38)
决定了,就写一个小组抽奖脚本吧。
实现功能:在小组贴子回复框的上层最右边添加一个按钮,点按即可进行本贴抽奖,
做一些可选参数,比如选择是否包括楼中楼,是否除去重复值,共抽几个

大概。。没什么很难实现的功能吧(bgm38)
#54-1 - 2021-2-25 21:14
MousHu
时隔一个多月 终于看到这样的感慨了 ~ (bgm72)
#54-2 - 2021-2-26 00:30
ekibun
一上来就地狱难度吗(bgm38)
#54-3 - 2021-2-26 10:28
妄想是不治之症
ekibun 说: 一上来就地狱难度吗
!原来很难吗!!
很难我就放弃了…(虽然还根本没开始(bgm38)
#54-4 - 2021-2-26 10:29
妄想是不治之症
MousHu 说: 时隔一个多月 终于看到这样的感慨了 ~
(bgm38)之前是因为确实懂得太少,现在是懂得多了一点但是不知道怎么用(bgm38)
#54-5 - 2021-2-26 20:12
点击进行抽奖不太好做吧……
#54-6 - 2021-2-26 21:13
妄想是不治之症
说: 点击进行抽奖不太好做吧……
button.onclick = function(){}不行嘛…(bgm38)
#54-7 - 2021-2-26 21:43
Yinr
这就来抽奖了么,我前几天就想来着,列出了功能列表和相关 api,然后不知道啥时候有空整
#54-8 - 2021-2-26 22:08
妄想是不治之症 说: button.onclick = function(){}不行嘛…
问题在于,用户点一下进行抽奖登记,这个登记结果需要发到你这里。怎么样发给你就是个难点了。
#54-9 - 2021-2-27 00:06
妄想是不治之症
说: 问题在于,用户点一下进行抽奖登记,这个登记结果需要发到你这里。怎么样发给你就是个难点了。
我的初步想法是点一下按钮直接抽,结果返回到alert里…不需要返回给我(bgm38)
#54-10 - 2021-2-27 00:10
妄想是不治之症
Yinr 说: 这就来抽奖了么,我前几天就想来着,列出了功能列表和相关 api,然后不知道啥时候有空整
(bgm38)这么小的功能还需要用到api嘛?!感觉我好像对这个功能的难度有所误解…
#54-11 - 2021-2-27 00:17
Yinr
妄想是不治之症 说: 这么小的功能还需要用到api嘛?!感觉我好像对这个功能的难度有所误解…
看做到啥程度吧...如果只是随机选几个楼层那就不需要了。
另外 alert 的话可能不好后续处理,可以增加直接自动回复中奖楼层的选项之类的(bgm24)
#54-12 - 2021-2-27 08:12
妄想是不治之症 说: 我的初步想法是点一下按钮直接抽,结果返回到alert里…不需要返回给我
(bgm38)
直接抽是谁来抽呢,用户还是你呢。用户抽完的话结果怎么反馈给你呢,毕竟弹一个alert的话很好修改的。
#54-13 - 2021-2-27 13:36
妄想是不治之症
说: 呃
直接抽是谁来抽呢,用户还是你呢。用户抽完的话结果怎么反馈给你呢,毕竟弹一个alert的话很好修改的。
是用户抽奖~(bgm38)不是我抽(bgm30)
我抽奖那确实地狱难度吧(bgm38)
#54-14 - 2021-2-27 13:38
妄想是不治之症
说: 呃
直接抽是谁来抽呢,用户还是你呢。用户抽完的话结果怎么反馈给你呢,毕竟弹一个alert的话很好修改的。
用户抽奖,不是我抽(bgm38)
#55 - 2021-2-26 14:49
(水中月是天上月,眼前喵是心上喵)
开心!终于有人跟我下单了!=W=
要实现的功能是随机排序分组,感觉挺简单的hhhhhhh
#55-1 - 2021-2-26 19:59
妄想是不治之症
草,简单个屁,血压飙升了。
明明一开始说的不重复名单分组,我就按照不重复的思路写了,好不容易写完之后跟我说还是可能有重复的,让我加一行代码保证重复的值不在一个组。
这是一行代码能搞定的事?
这他妈我得整个推翻重写…
#55-2 - 2021-2-26 21:15
妄想是不治之症
妄想是不治之症 说: 草,简单个屁,血压飙升了。
明明一开始说的不重复名单分组,我就按照不重复的思路写了,好不容易写完之后跟我说还是可能有重复的,让我加一行代码保证重复的值不在一个组。
这是一行代码能搞定的事?
这他妈我得...
因为坚持认为按照原来的方式写,只需维护几行就能实现,结果杂七杂八加了无数行也没能成功,现在全删掉了(bgm38),一片空白。
元宵节我就不继续折磨自己了,明天再重写。
#55-3 - 2021-2-26 21:22
妄想是不治之症
妄想是不治之症 说: 因为坚持认为按照原来的方式写,只需维护几行就能实现,结果杂七杂八加了无数行也没能成功,现在全删掉了,一片空白。
元宵节我就不继续折磨自己了,明天再重写。
记录一下新想的思路:先确定种子选手和轮空,剩下的乱序排列,再按顺序填到各小组去。
#55-4 - 2021-2-27 08:14
你在什么兼职网站上面接单了吗?
#55-5 - 2021-2-27 11:34
妄想是不治之症
说: 你在什么兼职网站上面接单了吗?
?我哪有那个水平……是沙雕网友听说我在学js,要我帮忙实现的功能(bgm38)

随机排序分组这个其实excel就能搞定吧,不过我很想试试就答应了
#55-6 - 2021-2-27 11:55
妄想是不治之症
妄想是不治之症 说: 记录一下新想的思路:先确定种子选手和轮空,剩下的乱序排列,再按顺序填到各小组去。
顺利产出了……呼……终于……!
不过感觉自己代码写得好踏马丑啊(bgm38)

而且有一个地方写得特别特别怪,不知道有没有改进的方法。
要求把m个数据随机分成n组,我的做法是设置一个长度为n的大数组,数组中的每一项都是一个小数组,然后再把随机的数据填进去。
但是就有一个问题,要怎么定义一个大数组里是n个数组呢……最后这么写的
  for(let i=0;i<n;i++){
    outcome.push([])
  }

太怪了吧也(bgm38)
#55-7 - 2021-2-27 12:21
Yinr
妄想是不治之症 说: 顺利产出了……呼……终于……!
不过感觉自己代码写得好踏马丑啊

而且有一个地方写得特别特别怪,不知道有没有改进的方法。
要求是把m个数据随机分成n组,我的想法是是设置一个长度为n的大数组,数组中的每...
差不多吧,或者
Array(n).fill().map(() => Array())
#56 - 2021-2-27 22:03
(水中月是天上月,眼前喵是心上喵)
第一次写一个还算比较完整的功能,结果到处是bug,改了一天没改好,哭了。

遇到一个比较大的问题是,单步调试的时候会跳过我写的点击事件,怎么在调试的时候运行事件里的代码块呢。。。。

现在是输出控制台没问题,也没有报错,但就是没效果(bgm38)
#56-1 - 2021-2-28 23:00
妄想是不治之症
再次怀疑我tm是智障吧……
#56-2 - 2021-2-28 23:05
snylonue
console.log 大法好(bgm38)
#56-3 - 2021-2-28 23:29
妄想是不治之症
妄想是不治之症 说: 再次怀疑我tm是智障吧……
不!!!!不是zz!!!因为我!!!写完了!!!给自己鼓一万个掌!!!
#56-4 - 2021-2-28 23:37
妄想是不治之症
snylonue 说: console.log 大法好
(bgm38)console.log大法用过了,我想要输出的结果在控制台可以输出,但在网页上显示不出来(bgm38)
最后观察了半天,才发现好像是有刷新。导致原本输出了的值又被刷新为了原始值(bgm38)
这才注意到我从网上抄来的css模板里用的是form我没改……改成div以后解决了(bgm38)
#56-5 - 2021-3-1 00:13
妄想是不治之症
妄想是不治之症 说: 不!!!!不是zz!!!因为我!!!写完了!!!给自己鼓一万个掌!!!
开心得不行嘿嘿嘿=W=
#57 - 2021-3-2 20:07
(水中月是天上月,眼前喵是心上喵)
(bgm38)世界上最难过的就是问一个问题然后获得答案,结果这个答案又是一个新问题…(bgm38)(bgm38)
我都不敢继续问了。感觉自己的问题过于智障以至于会把老师气走(bgm38)
痛下决心一定要学好英语(bgm38)这样遇事可以谷歌,就不用气老师了(bgm38)(bgm38)(bgm38)
#57-1 - 2021-3-2 21:10
妄想是不治之症
(bgm116)(bgm116)(bgm116)(bgm116)(bgm116)
我一定加油努力补好基础(bgm116)(bgm116)(bgm116)
#58 - 2021-3-3 09:41
(水中月是天上月,眼前喵是心上喵)
emmmmmmm
需求是做一个切换背景图片的新功能。
想了一下,似乎如果用户用图床的话,我这边就直接使用他的url,应该是不难的。

但是(bgm38)
如果想做到不同的用户能各自换成自己的背景图片的话,是不是要用到浏览器cookie啥的。
不然要怎么针对一个用户保存更改(bgm38)
#59 - 2021-3-4 10:42
(水中月是天上月,眼前喵是心上喵)
发现一个实现轮播的实用工具:https://www.swiper.com.cn/
#60 - 2021-3-5 00:05
(水中月是天上月,眼前喵是心上喵)
感觉廖大神的教程越写越深了(bgm39)是我这个阶段不应该接触的深吧(bgm38)
标记https://www.liaoxuefeng.com/wiki ... 12/1072866346339712
#60-1 - 2021-3-5 00:53
ekibun
可以不用class但一定要会原型链
#60-2 - 2021-3-5 01:17
妄想是不治之症
ekibun 说: 可以不用class但一定要会原型链
谢谢提醒!~只是吐槽一下,还是会坚持学的。
发出这种感叹是因为完全不知道应该怎么去应用这些(bgm38)
#60-3 - 2021-3-5 09:02
妄想是不治之症
妄想是不治之症 说: 谢谢提醒!~只是吐槽一下,还是会坚持学的。
发出这种感叹是因为完全不知道应该怎么去应用这些
刚刚说不会应用,下一秒就在swiper里看见了这个(bgm38)
#61 - 2021-3-11 15:53
(水中月是天上月,眼前喵是心上喵)
#62 - 2021-3-12 10:03
(水中月是天上月,眼前喵是心上喵)
进入ajax部分以后再次感觉步子跨太大了。
其实request是怎么一回事都没搞明白,看来需要恶补(
#62-1 - 2021-3-12 10:10
HTTP协议的话,可以看MDN的文档
https://developer.mozilla.org/en-US/docs/Web/HTTP
#62-2 - 2021-3-12 14:10
妄想是不治之症
说: HTTP协议的话,可以看MDN的文档
https://developer.mozilla.org/en-US/docs/Web/HTTP
原来应该看http协议(bgm38)怪不得我看了半天mdn的request还是一头雾水(bgm38)(bgm24)
#63 - 2021-3-12 22:33
(水中月是天上月,眼前喵是心上喵)
标记https://www.liaoxuefeng.com/wiki ... 12/1023022423592576
这就看完promise和ajax了?没有课后题总感觉自己还没有真正掌握啊……
canvas继续去看绿叶的好了
#63-1 - 2021-3-13 10:57
妄想是不治之症
我人都傻了。这就是所谓的初学者教程吗?

简直就像那个梗图一样……

课本:现在我们来学一下canvas,画线条是path.moveTo(),写文字是.fillText(),各位都懂了吗?是不是很简单呢。

现在练习一下:请根据163数据画出30天交易日的k线图
#63-2 - 2021-3-14 01:48
ekibun
promise知道 宏任务 和 微任务 的差别就差不多了

题目要不写个 协程池 吧:

比如写bgm的爬虫,bgm总共有30w的条目,但是bgm限制同时最多只能有10个http请求,要想最快请求完所有条目,就得尽可能保证同时有10个请求在进行

假设我有一个请求函数列表,调用它就会建立一个请求并返回一个Promise,实现一个函数,能够同时等待n个Promise,并在其中任何一个Promise返回后调用列表的下一个请求函数创建一个新的Promise,直到列表所有的请求函数都调用完。

可以用下面的例子测试:
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);
testReqs包含5个请求函数,第i个请求函数会在调用的时候输出start i并等待i秒在控制台输出done i,并resolve返回的promise。同时请求的数量为2。那么控制台输出应该为(括号内为程序运行时间)
[00s]start 0
     start 1
     done 0
     start 2
[01s]done 1
     start 3
[02s]done 2
     start 4
[04s]done 3
     start 5
[06s]done 4
[09s]done 5
#63-3 - 2021-3-14 01:53
咕咕子❶
妄想是不治之症 说: 我人都傻了。这就是所谓的初学者教程吗?

简直就像那个梗图一样……

课本:现在我们来学一下canvas,画线条是path.moveTo(),写文字是.fillText(),各位都懂了吗?是不是很简单...
canvas可以放一下, 我这个6年老前端也不太会, 因为基本没用上过
学前端不是有什么就怼什么, 东西太多了, 假如目标是要一份工作, 可以百度面试通常问什么(bgm91)
#63-4 - 2021-3-14 14:10
妄想是不治之症
ekibun 说: promise知道&nbsp;宏任务&nbsp;和&nbsp;微任务&nbsp;的差别就差不多了

题目要不写个&nbsp;协程池&nbsp;吧:

比如写bgm的爬虫,bgm总共有30w的条目,但是...
我应该是基本告别代码这一行了(bgm38)
我还不信邪研究了半天(真的半天)最后还是宣告不会。
唯一的成果是看懂题目了(bgm38)(bgm30)
#63-5 - 2021-3-15 02:27
ekibun
妄想是不治之症 说: 我应该是基本告别代码这一行了 我还不信邪研究了半天(真的半天)最后还是宣告不会。 唯一的成果是看懂题目了
虽然我确实是故意为难你的,但打击到积极性就真的抱歉了(bgm38)

楼下的代码思路大概是这样的:

第一步:建立n个promise协程
首先创建一个长度n的数组,然后map到一个闭包函数,这个函数是async开头的所以返回的是promise,那么我们得到了一个长度n的promise数组,Promise.all用来等待所有的协程执行完:
Promise.all(new Array(n).fill(0).map(async () => {
    // todo
}))
第二步:按顺序取出请求并调用
我们把每一个promise当作一个运行作业的协程,每一个协程里面加入一个循环,每次从请求列表里面取出一个请求并调用(req.shift()是取出并删除数组的第一个元素,这里元素是一个返回promise的函数,所以这里再加一个()调用它并得到promise),直到没有新的请求:
Promise.all(new Array(n).fill(0).map(async () => {
    while(req.length) {
        await req.shift()()
    }
}))
重点在第二步,await的作用和then一样,每次await都会暂停当前协程的运行,并等待promise的返回,这样一来不同的协程会交替地从请求数组中取值调用,并在请求结束后重复上述过程。
#63-6 - 2021-3-15 09:31
妄想是不治之症
ekibun 说: 虽然我确实是故意为难你的,但打击到积极性就真的抱歉了

楼下的代码思路大概是这样的:

第一步:建立n个promise协程
首先创建一个长度n的数组,然后map到一个闭包函数,这个函数是async开头...
原来是真的故意为难啊!(bgm53)生气了喂!(bgm52)

不过愿意写解析帮了大忙了(bgm38)还是感谢!!!我下班了再看看!
#63-7 - 2021-3-15 11:09
ekibun
妄想是不治之症 说: 原来是真的故意为难啊!生气了喂!

不过愿意写解析帮了大忙了还是感谢!!!我下班了再看看!
这不是为了对应#63-1的梗图吗hhh,不过这确实是我写爬虫遇到的问题,看懂了可以试试:

自己封装一个 CancelablePromise

附答案: https://juejin.cn/post/6844903533393772557
#64 - 2021-3-14 02:00
(✨️make bangumi great again✨️)

function queue(fetchs = [], num = 2) {
  if (!fetchs.length) return false

  await Promise.all(
    new Array(num).fill(0).map(async () => {
      while (fetchs.length) {
        // eslint-disable-next-line no-await-in-loop
        await fetchs.shift()()
      }
    })
  )
  return true
}


给你一个好用的代码, 看懂记得回复#63-2
#64-1 - 2021-3-14 14:48
妄想是不治之症
(bgm43)谢谢,没有看懂
#65 - 2021-3-14 14:48
(水中月是天上月,眼前喵是心上喵)
经过两位好心人的鞭笞,意识到自己基础过于薄弱,决定从头开始练习起。
(bgm38)廖雪峰的教程就先搁置了
从这个编程练习题开始做:https://www.nowcoder.com/ta/js-assessment
#65-1 - 2021-3-14 15:58
咕咕子❶
这些题入门还不错, 看这些比看canvas好多了
#65-2 - 2021-3-14 17:24
妄想是不治之症
咕咕子 说: 这些题入门还不错, 看这些比看canvas好多了
开始做题才知道自己基础有多么不牢固(bgm38)
第一题写了半天愣是不对硬撑着不看解析,头都想秃了。
最后看了解析,哦,没写return(bgm40)
#65-3 - 2021-3-14 17:39
妄想是不治之症
感叹:基础不牢,地动山摇。我还是多刷点题好了
#65-4 - 2021-3-14 17:40
#65-5 - 2021-3-14 18:47
妄想是不治之症
妄想是不治之症 说: 开始做题才知道自己基础有多么不牢固
第一题写了半天愣是不对硬撑着不看解析,头都想秃了。
最后看了解析,哦,没写return
再次没写return(bgm41)

下次写一个function直接先写上return,不需要再删(bgm43)
#66 - 2021-3-14 19:10
(水中月是天上月,眼前喵是心上喵)
万万没想到在核弹打击下我竟然坚强地学习了一天。
暂停暂停。标记进度写到题目 柯里化
#66-1 - 2021-3-14 21:06
妄想是不治之症
批量改变对象的属性
#67 - 2021-3-17 21:07
(水中月是天上月,眼前喵是心上喵)
正则好难(bgm30)规则太多记不住
#67-1 - 2021-3-18 01:04
ekibun
(bgm38)虽然正则断言我也没搞懂,但常用的也就小中大括号和.?*+吧
#68 - 2021-3-17 22:07
(水中月是天上月,眼前喵是心上喵)
草……https://www.codewars.com/dashboard
codewar开发者怕不是一个二次元(bgm38)
#68-1 - 2021-3-17 22:11
妄想是不治之症
这网站真好,又练做题又练英语(bgm43)有朗读就好了,还能练听力
#68-2 - 2021-3-17 22:21
妄想是不治之症
妄想是不治之症 说: 这网站真好,又练做题又练英语有朗读就好了,还能练听力
太可爱了吧,有的题还有背景设定:
“巨魔正在攻击你的评论,解决方法是从巨魔的评论中删除全部元音,以消除威胁。”
绝绝子
给的例子是"This website is for losers LOL!"
还真是巨魔。我tm笑死
#69 - 2021-3-17 22:37
我来宣传焦虑了(bgm24) 前端开发的演变
#69-1 - 2021-3-17 23:37
妄想是不治之症
教程马了,谢。
但是没懂……有啥可焦虑的?
#70 - 2021-3-21 14:49
(水中月是天上月,眼前喵是心上喵)
(bgm38)(bgm38)(bgm38)
为什么这段foreach代码没有能像预想一样改变arr呢……
arr.forEach((ele) => {
          if (ele.length >= 5) {
            ele = ele.split("").reverse().join("");
          }
        });

执行完这段再打印arr,其中的元素没有反向,也没有报错
#70-1 - 2021-3-21 15:22
forEach does not directly mutate the object on which it is called but the object may be mutated by the calls to callbackfn
所以你需要在callback里面手动改变arr

arr.forEach((item, index) => {
  if (...) {
    ele = ...
    arr[index] = ele;
...

大概是这种感觉
#70-2 - 2021-3-21 16:42
妄想是不治之症
说: 所以你需要在callback里面手动改变arr

arr.forEach((item, index) => {
&nbsp;&nbsp;if (...) {
&nbsp; &nbsp; ele = ....
!这样!这句话我在mdn文档里看到好多次了,但是一直没咋理解意思(bgm38)
原来改变arr里的element不算改变arr(bgm38)
不过这个机制我没太理解。
有试过在那个ele = ...那句后面用console.log看ele有没有被改变,其实是改变了的。那是在foreach结束以后又变回去了?这中间发生了什么…
#70-3 - 2021-3-22 01:17
ekibun
妄想是不治之症 说: !这样!这句话我在mdn文档里看到好多次了,但是一直没咋理解意思 原来改变arr里的element不算改变arr 不过这个机制我没太理解。 有试过在那个ele = ...那句后面用console.lo...
函数调用都是传值的,ele传进来的时候就已经被拷贝了,所以你改变ele这个局部变量对原数组并没有影响。
说来foreach期间改变数组不是个好习惯吧(bgm38)
#71 - 2021-3-21 19:59
(水中月是天上月,眼前喵是心上喵)
刷题刷到7级了(bgm38)
好累(bgm38)
#72 - 2021-3-23 23:10
(水中月是天上月,眼前喵是心上喵)
草,由于我的代码写得过于诡谲,竟然测试出了codewars的bug哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
我笑吐了
应该不会有人比我的思维更奇形怪状了吧哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

题目是这样的,要求写一个函数function(arr,n),使arr中的每个元素最多只能出现n次,返回一个新的数组。(比如数组arr = [1,1,1,2,2,3],如果n为1,返回[1,2,3],如果n为2,返回[1,1,2,3])
然后我的解法是这样:

function deleteNth(arr,n){
  let hash = [];
  let res = [];
  for(let i in arr) {
    if(!hash[arr[i]]){
      res.push(arr[i]);
      hash[arr[i]] = 1;
    } else{
      if(hash[arr[i]] < n){
        res.push(arr[i]);
        hash[arr[i]]++;
      }
    }
  }
  return res;
}

我自己试了很多次都是没啥问题的,结果提交测试的时候就出现了这种问题
#72-1 - 2021-3-23 23:16
妄想是不治之症
不知道为啥res数组后面会多出一个[Function]……可能和codewars的随机机制有点关系?
#72-2 - 2021-3-23 23:28
妄想是不治之症
妄想是不治之症 说: 不知道为啥res数组后面会多出一个[Function]……可能和codewars的随机机制有点关系?
啊不对。好像确实是我的问题,for in是不是最好不要用于遍历数组。我改一下再试试
#72-3 - 2021-3-23 23:32
妄想是不治之症
妄想是不治之症 说: 啊不对。好像确实是我的问题,for in是不是最好不要用于遍历数组。我改一下再试试
啊真的……for in 应该是遍历对象的。是我傻了。
还好还好,不是因为思路太奇怪了出现的问题hhhhhhhhh
#72-4 - 2021-3-23 23:36
妄想是不治之症
绝了,看了眼高赞大佬思路好像和我的差不多,但是人家就写了四行(bgm30)
这谁顶得住啊(bgm116)
#73 - 2021-5-14 16:28
(水中月是天上月,眼前喵是心上喵)
给string原型加一个sort方法
String.prototype.sort = function() {
  return this.split("").sort().join("");
};
#74 - 2022-1-30 22:33
(プリキュアなりたい)
居然进年鉴了,来围观下(bgm38)
#74-1 - 2022-2-21 18:47
妄想是不治之症
?年鉴还行,愣住(
这种自言自语也能进年鉴啊
#75 - 2022-2-12 23:10
(2023, 还能摆一年XD)
推荐几个网站, 感觉对于编程来说英文很重要(或者有好的翻译器) 没练手就git找就行
You-need-to-know-cssGit正则迷你书Git Proj合集CSS-Inspirationcss_trickscss揭秘实例现代js教程30 sec of code50天50练手的Git50/50的网站

加上几本书好了.
Pro git、SICP、正则表达式必知必会、精通正则表达式、精通CSS、CSS揭秘、深入解析CSS、JavaScript DOM编程艺术、JavaScript 高级程序设计、你不知道的JavaScript、JavaScript权威指南、JavaScript忍者秘籍
然后找Vue、React之类的项目练手,之后挂到git上当简历门面就行. Json, Node, jQuery, Ajax, ts. 顺便可以学学PHP或者Golang自己搭个后台看看自己页面怎么样,还能自己练习动态页面

现在忙考试, 等准备完事. 我也得重新学一套技术栈然后试试前后一起XD. 不过估计楼主比我厉害好多吧
#75-1 - 2022-2-21 18:52
妄想是不治之症
我惭愧了。
沉迷游戏又ge了。dbq我这就捡起来。
#75-2 - 2022-2-21 20:21
墨冷
妄想是不治之症 说: 我惭愧了。
沉迷游戏又ge了。dbq我这就捡起来。
没看懂你的字母2333 等我这段时间准备完考试, 我也比重拾编程, 到时候先学Java的套装试试水吧...
#76 - 2022-2-12 23:24
(2023, 还能摆一年XD)
搜书的话,直接Zlib脚本之家, 还有大佬建的小站之类也可以. 反正编程的书就那些了. 也可以看看机械工业、图灵异步、电子工业、人民邮电之类的出版社. 前端也得学学计科吧, 学学设计模式算法知识补充,还有书单的话, 我推荐一个书单, 很多知识到b站看视频没问题, 然后再看书巩固, 加上做项目.

实话我感觉你比我强多了. 我学习的时候老摸鱼了. 对,还有挺多社区可以看看, 思否掘金博客园, 建议远离复制粘贴网, 有问题就stackoverflow. 现在入门门槛太高, 而且互联网大潮过去了, 我也只是喜欢编程才会选这个. 希望学有所成 :D