使用JS脚本编写HUST华中科技大学军理线上作业简易自动填充助手
〇、前情提要
今天在填写HUST华中科技大学军理线上作业的时候,看着满屏幕的选择题,我望了望手中的答案,突然想到,有没有先人已经做好了的脚本可以使用呢?
然后在油叉上面找了找发现了这个:
HUST华中科技大学军理线上作业简易自动填充助手 (greasyfork.org)
这是它的github页面:
HUST-MT-Helper
在尝试安装并使用之后,我发现并不能正常使用,主要原因是华中科技大学出版社的官网更新了,原有的域名和内容编排都发生了变化,于是我就开始尝试自己将其中的js代码进行改写。
具体改写过程在这里不再赘述,但是想要在这里记录一下自己所遇到的几个问题,以及学到的几个知识。
一、最大的感触
1.对于JavaScript的第一印象
对于感觉js有点像就是对于html的源代码进行检索,编辑,操作……本身就提供了相当多的接口来使用,使用起来相对轻松。
基本语法和C++基本一致,除了在函数声明上和另外一些我暂时看不懂的东西上有所区别,基本上是相同的。
2.弱类型语言
JavaScript是一个弱类型语言,在定义变量时,变量类型由其储存的内容决定。
其实结合后面的另外一点,感觉JavaScript在存储数据方面更像是存取指针,而不是引用具体的实例。
3.在JavaScript中数据类型有些不一样
和常规的语言相比,JavaScript的运行依赖于html文件,在很多操作上比起引用更像是指针。
比如这样的DOM结构:
1 | <div id="a1"></div> |
我之前想的是这样交换:
1 | var divs = document.querySelectorAll("div"); |
但是实际上这将不进行交换。原因如下:
![[js-将nodeList像数组一样进行操作]]
4.得利于Edge提供的良好的开发者工具,debug十分地便捷
可以将js挂载到网页中,然后使用edge开发者工具对代码进行debug调试
最大的优点是数据类型会以悬浮窗的形式显示出来,而数据的具体数据及其变化情况会以旁批的形式标注出来。
二、其他的一些知识点
1. 获取标签元素data-*属性值的方法
在JavaScript 如果直接使用 a.data-id
会被理解为两数相减a.data - id
这个时候就需要换一种读取方式。
![[js-获取标签元素data-xxx属性值的方法]]
2. radio表单结构
![[js-radio表单结构]]
3.js 里面的函数构造
![[js-函数构造]]