js学习笔记

本文介绍了一位编程爱好者尝试使用JavaScript解决每周重复性的网页操作任务的经历。主要内容包括:使用JavaScript进行网页自动化的基本思路,学习资源的选择,以及JavaScript与C/C++在语法特性上的对比分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近脑子一抽想学JS了,目的是非常现实的,为了解决www.9org.com 的平台上的教室申请提交问题。主要的想法是这样的:作为某个社团的打杂孩纸,我需要在每周一早晨8:00左右在久聚平台上登陆自己的账号密码,进入一个固定的教室申请的界面,然后填写十几份申请。填写每一份申请需要在教室申请的界面戳一个”新建申请“的按钮,进入一个新的网页,在新的页面中的指定位置填写一些时间,教室位置,申请名字,是否通知等等信息,然后戳提交申请的按钮。每周需要重复这样的机械劳动很多次导致我非常渴望能够写一个脚本解决问题(应该是写一个脚本吧其实水水的我连要写什么都不确定QAQ)。当然我现在还在学习JS的阶段并且毫无头绪,如果有亲爱的小天使们有想法的话非常欢迎戳我2333

  吐槽结束下面是正事啦!宝宝用的是 http://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000 这个网址廖老师的教程来学习。之前有学过C/C++,所以学JS的重点应该就是完成上面的宏伟目标,非常非常功利QAQ可能的话会考虑一些C和JS的异同,从比较辨析的角度去学习吧。

一、快速入门部分

1.开发环境。宝宝现在还没有配环境,都是直接在教程中输入代码学习的【一条咸鱼

2.自动补';'(感觉略诡异的规则,解决方法大概就是从来不省略';'吧)

3.严格区分大小写(感觉是惯例?)

4.数据类型包括Number,字符串,布尔值

5.比较运算符包括==和===,其中==自动转换数据类型再比较,===要求数据类型一样才判是否相等,数据类型不同直接false。这样神奇的用法使得推荐只用===进行比较。同时神奇的是里面自带了NaN并且只能通过isNaN()这个函数来判断是否为NaN而不能用==/===。这里和C应该有挺明显的区别的,比如C里面从short->int->unsigned int->long这一条线我记得是在比较的时候有自动升级的效果(两边类型不同的时候自动把低级别数据类型的一边升级到高级别的数据类型然后比较),但是在JS里面只有Number一个数据类型所以少了浮点数啊各种整形啊的好多好多幺蛾子。但是C里面的0==false这条的结果应该是true的,然而JS里面0===false就会被恶毒的数据类型判断为false从而免不了天各一方的悲惨结局。

  其实我现在不能理解为什么要有===这个运算符,但是感觉它总归还是有用的吧。需要用===的地方应该就是==得到的结果和===得到的结果不同的地方,从而比较的双方有不同的数据类型。如果一边是Number一边是bool,那就是false==0//true 和true==1或1.0//true(其实1和1.0在JS里是完全一样的吧但是C中的感觉强迫我分开他们真是无奈啊);如果一边是bool一边是字符串,那就是false==‘0’//true 和true==‘1’//true;如果一边Number一边字符串,那就是扒开数字的引号吧。但是试了一下,'1'==1//true  '\'1\''==1//false大概是只能扒一层引号吧。从字符串角度来说还有'a'==97//false 97是a的ascii码,所以关于这个好像也没有什么好的结果。所以===有什么用么?反正我现在知道了要用===,并且小白的不知道为什么,总之你开心就好~

6.null和undefined,其中null表示空值,undefined表示未定义。大多数情况下用null,所以我好想吐个槽为什么不初始化呀这样就用不上undefined了啦

7.动态语言,变量本身类型不固定,可以把任意数据类型赋值给变量啦啦啦啦。这个严重不同于C,当然这样就不需要强制类型转换啦啦啦

8.数组没有任何错误。改变了数组自带length属性就真的改变了数组的大小,访问超出的元素时也会直接自动扩充数组,扩充部分为undefined(哎呀undefined好像还是挺有用哒)。天哪再也不用担心数组越界啦!

相比于C++,差异应该是挺明显的。我感觉比起数组,这个反而更像vector一些,但是又有push和pop还有unshift(头部添加元素)shift(删除首元素)反而像是双端队列,但是又有随机访问一样的索引访问。哎不管这个东西是什么了只要好用就好

9.对象,像是C++里的类。但是动态类型可以在定义之外的地方自由的添加或删除一个对象的属性。

10.循环,有for...in循环,可以把一个对象的所有属性依次循环出来。

二、函数部分

1.arguments.length自动表示传入参数的个数,一个函数可以传入任意个参数(所以参数表大概只是为了好玩和省事吧hhh),可以用arguments[i]自动拿出所有传入的参数。

  这里想到了类似C++的函数重载。C++为了重载写好多函数,而JS选择了同一个函数想怎么传参就怎么传参,再根据传入的参数来选择函数怎么运行,从需要完成的功能来看还是挺像的。

2.变量提升。大概就是像C++的汇编预编译什么的部分,来去把函数中的所有变量定义提到开头,当然提上来的只有名字和undefined,不包括本来的初始化。所以在前面用到了后面定义的变量并不会报错,只会得到奇诡的结果。这告诉我们请一定要把变量定义写在开头啊。

3.绑定到对象上的函数称为方法。这块总的思路上感觉是类似C++的


//Till map/reduce

//To Be Continued






内容概要:该论文聚焦于6G通信中20-100GHz频段的电磁场(EMF)暴露评估问题,提出了一种基于自适应可重构架构神经网络(RAWA-NN)的预测框架。该框架通过集成权重分析模块和优化模块,能够自动优化网络超参数,显著减少训练时间。模型使用70%的前臂数据进行训练,其余数据用于测试,并用腹部和股四头肌数据验证模型泛化能力。结果显示,该模型在不同参数下的相对差异(RD)在前臂低于2.6%,其他身体部位低于9.5%,可有效预测皮肤表面的温升和吸收功率密度(APD)。此外,论文还提供了详细的代码实现,涵盖数据预处理、权重分析模块、自适应优化模块、RAWA-NN模型构建及训练评估等内容。 适合人群:从事电磁兼容性研究、6G通信技术研发以及对神经网络优化感兴趣的科研人员和工程师。 使用场景及目标:①研究6G通信中高频段电磁暴露对人体的影响;②开发更高效的电磁暴露评估工具;③优化神经网络架构以提高模型训练效率和预测精度。 其他说明:论文不仅提出了理论框架,还提供了完整的代码实现,方便读者复现实验结果。此外,论文还讨论了未来的研究方向,包括扩展到更高频段(如300GHz)的数据处理、引入强化学习优化超参数、以及实现多物理场耦合的智能电磁暴露评估系统。建议读者在实际应用中根据具体需求调整模型架构和参数,并结合真实数据进行验证。
内容概要:本文是北京金融科技产业联盟发布的《基于数据空间的金融数据可信流通研究报告》,探讨了金融数据可信流通的现状、挑战和发展前景。文章首先介绍了金融数据在数字化转型中的重要性及其面临的隐私保护和安全挑战。接着,文章详细阐述了数据空间的概念及其发展历程,尤其是可信数据空间(TDM)在我国的发展情况。文中还深入分析了金融数据可信流通的典型应用场景、关键技术和方案架构,如数据访问控制、数据使用控制、智能合约、数据脱敏等。最后,文章展示了多个典型场景应用案例,如中信银行总分行数据流通管控、工银金租数据流通、银联安全生物特征支付等,并总结了当前可信数据空间建设中存在的法规、技术、标准和商业模式挑战,提出了相应的政策建议。 适用人群:金融行业从业者、数据安全管理人员、政策制定者、科技研发人员等。 使用场景及目标:①理解金融数据可信流通的重要性和挑战;②学习可信数据空间的关键技术和应用场景;③探索金融数据可信流通的具体实践案例;④了解当前可信数据空间建设的瓶颈和未来发展方向。 其他说明:本文不仅提供了详尽的技术和应用分析,还提出了具体的政策建议,有助于推动金融数据可信流通的健康发展。阅读本文可以帮助读者深入了解金融数据安全保护和高效利用的最佳实践,为相关政策和技术的发展提供参考。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值