js学习笔记

本文深入探讨JavaScript编程中常被忽视但至关重要的细节,包括变量作用域、函数参数处理、数组排序与操作、DOM操作、密码安全传输等,旨在提升开发者对JS核心概念的理解与应用能力。

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

1 比较时尽量使用===,这样比较时会连类型一起比较,避免类型不同时奇怪的比较结果

2 function(参数列表){函数体},函数体中的都有一个arguments的参数,可以用arguments.length参数判断函数传入了几个参数

3 var修饰的变量表示它是函数级变量,没有var修饰的变量是全局变量,这些变量被绑定在全局变量windows上,而let修饰的变量是区域级的变量

4 对于array的sort方法可以传递一个函数作为参数,参数的入参一定是两个,指明排序的比较方法

5 类似的,集合的map方法,reduce方法和filter方法都可以使用函数做入参,map方法表示对集合的每个元素都用传入的方法改变,reduce表示对每个元素都用传入的方法做运算,在用结果和下一个元素做运算,filter表示如果不返回true的元素会被过滤掉

6 Date默认可以返回浏览器从系统获取的时间,但是var date = new Date(); date.getMonth()获取到的时间是从0开始计算的,也就是说0表示1月,11表示12月...

7 json 的序列化:JSON.stringify(obj),可以将对象转换成json

   json的反序列化:JSON.parse(js)将json反序列化成js对象

操作dom对象:一般获取dom对象是先通过getElementById获取到根节点,在通过getElementsByTagName()和getElementsByClassName获取到需要的元素集

eg)

// 获取<p>javascript</p>节点:
var js = document.getElementById("test-js");

// 修改文本为JavaScript:
js.innerHTML="JavaScript";

// 修改CSS为: color: #ff0000, font-weight: bold
js.style.color = "red";
js.style.fontWeight = "bold"

8 动态添加标签

在list的末尾添加p标签

var list = document.getElementById('list'),
var haskell = document.createElement('p');
haskell.innerText = 'Haskell';
list.appendChild(haskell);

获取的list元素还有insertbefore的方法,能将新建的标签插入到list的任意标签前面,children[i]方法可以获取其第i个元素

9 拿到指定id的标签后删除它

var self = document.getElementById('to-be-removed');
// 拿到父节点:
var parent = self.parentElement;
// 删除:
var removed = parent.removeChild(self);
10 设置密码密文提交的方式

一般在网络上传输密码的时候,我们希望密码域能够密文传输,单数将密码域的value做加密会导致密码域的位数突然变化,这种情况,一般不设置密码域的name,这样表单不会传输这一项,而使用一个隐藏的表单项提交加密后的密码

eg)

<form id="login-form" method="post" onsubmit="return checkForm()">
    <input type="text" id="username" name="username">
    <input type="password" id="password" name="password">
    <button type="submit">Submit</button>
</form>

<script>
function checkForm() {
    var pwd = document.getElementById('password');
    // 把用户输入的明文变为MD5:
    pwd.value = toMD5(pwd.value);
    // 继续下一步:
    return true;
}
</script>

 

内容概要:本文介绍了多种开发者工具及其对开发效率的提升作用。首先,介绍了两款集成开发环境(IDE):IntelliJ IDEA 以其智能代码补全、强大的调试工具和项目管理功能适用于Java开发者;VS Code 则凭借轻量级和多种编程语言的插件支持成为前端开发者的常用工具。其次,提到了基于 GPT-4 的智能代码生成工具 Cursor,它通过对话式编程显著提高了开发效率。接着,阐述了版本控制系统 Git 的重要性,包括记录代码修改、分支管理和协作功能。然后,介绍了 Postman 作为 API 全生命周期管理工具,可创建、测试和文档化 API,缩短前后端联调时间。再者,提到 SonarQube 这款代码质量管理工具,能自动扫描代码并检测潜在的质量问题。还介绍了 Docker 容器化工具,通过定义应用的运行环境和依赖,确保环境一致性。最后,提及了线上诊断工具 Arthas 和性能调优工具 JProfiler,分别用于生产环境排障和性能优化。 适合人群:所有希望提高开发效率的程序员,尤其是有一定开发经验的软件工程师和技术团队。 使用场景及目标:①选择合适的 IDE 提升编码速度和代码质量;②利用 AI 编程助手加快开发进程;③通过 Git 实现高效的版本控制和团队协作;④使用 Postman 管理 API 的全生命周期;⑤借助 SonarQube 提高代码质量;⑥采用 Docker 实现环境一致性;⑦运用 Arthas 和 JProfiler 进行线上诊断和性能调优。 阅读建议:根据个人或团队的需求选择适合的工具,深入理解每种工具的功能特点,并在实际开发中不断实践和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值