JavaScript给我的感觉真的是一门很万能,很强大的语言,在青训营学习后我对JavaScript有了更深入的理解。我想把这一个月的学习心得总结成这篇文章,既是对自己的一个笔记和回顾,也希望可以对JavaScript感兴趣的同学有所启发和帮助。
在训练营的第一周,我系统地学习了JavaScript的基础语法,包括变量和数据类型、数组和对象、条件判断和循环等。这些作为一门编程语言的基础是不可或缺的,对我来说也是一次重新认识JavaScript的过程。比如对象的构造方式、原型链继承等概念,我以前就听说过,但系统地做一次实践还是让我理解加深了。
第二周我开始实战,开发了一个简单的TODO应用。我受益匪浅,原来一个网页应用是这样一点一点做出来的!为了动态更新页面,我们还学习了DOM操作。之后我们使用AJAX请求获取服务器数据,配合本地存储也实现了简单的登录注册功能。这一系列的实践让我对开发流程有了直观的感受。
TRAINING CAMP中后半段,我们学习了使用框架Vue开发应用。这与以前纯JS的方式有了很大的不同。通过Vue提供的双向绑定、组件系统等功能,我们可以更快更好地构建应用。最后我们使用Vue还做了一个组件库的项目,让我对模块化和组件化开发有了全新的认识。
我在这里写一些我学JS中一些易错易混淆的点: var和let的区别:var声明的变量可以重复声明,let不可以;var有变量提升,let没有变量提升。 ==和===的区别:==为宽松相等,会做类型转换,===为严格相等,不做类型转换。 null和undefined的区别:null表示空值,undefined表示未定义。 闭包的概念:一个函数和其周围状态(lexical environment)的引用捆绑在一起形成闭包。简单说,能访问其他函数内部变量的函数。 判断数组的方法:Array.isArray(arr) 是最准确判断数组的方法。 箭头函数与普通函数的区别:箭头函数没有自己的this,需要通过查找作用域链来决定this指向。
最后贴一下Hello World级别的实战小代码:
const changeBtn = document.getElementById('changeBtn');
const bgColors = ['red', 'green', 'blue', 'purple', 'orange'];
changeBtn.addEventListener('click', function() {
const colorIndex = Math.floor(Math.random() * bgColors.length);
document.body.style.backgroundColor = bgColors[colorIndex];
});
<!DOCTYPE html>
<html>
<head>
<title>Change Background Color</title>
</head>
<body>
<button id="changeBtn">Change Color</button>
<script src="main.js"></script>
</body>
</html>