1-如何学习JavaScript
On this page
JavaScript的用处
JavaScript也是前端最基础的知识点,是构建网页的基本元素,实现UI,先要设计对应的DOM结构,编写HTML代码和css代码实现UI效果,然后通过JavaScript来实现交互,所以学习JavaScript相当于是搬砖的第三步,用砖块把房子盖好、装修好之后,开始增添一些电器、设备。JavaScript就是用来编写这些互动脚本,那你可以在墙上钻个孔,放置一幅画,可以做个自动门,点击一下就能自动打开。
🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖
🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖
🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖 🤖
学习和写JavaScript基本是和其他编程语言一样了,主要学习基本的语法,用思维推理逻辑来完成代码编写。
JavaScript学习方法
JavaScript里面的一些知识点可能是需要记一记、背一背的,需要熟练掌握,比如说基本的数据类型、运算符、逻辑控制等等,这些最基础的基本多写写就熟练了。其他的像作用域、原型、面向对象的编程方法、函数式编程等等需要多理解,多分析代码,多调试,遇到问题不断地去解决,用这些原理来思考,这些事需要学习积累的软件开发经验。
下面是一个实现深克隆简单的例子:
/**
* deep clone
* @param {[type]} parent object 需要进行克隆的对象
* @return {[type]} 深克隆后的对象
*/
const clone = parent => {
const parents = [];
const children = [];
const _clone = parent => {
if (parent === null) return null;
if (typeof parent !== 'object') return parent;
let child, proto;
if (isType(parent, 'Array')) {
// 对数组做特殊处理
child = [...parent];
} else if (isType(parent, 'RegExp')) {
// 对正则对象做特殊处理
child = new RegExp(parent.source, getRegExp(parent));
if (parent.lastIndex) child.lastIndex = parent.lastIndex;
} else if (isType(parent, 'Date')) {
// 对Date对象做特殊处理
child = new Date(parent.getTime());
} else {
// 处理对象原型
proto = Object.getPrototypeOf(parent);
// 利用Object.create切断原型链
child = Object.create(proto);
}
// 处理循环引用
const index = parents.indexOf(parent);
if (index != -1) {
// 如果父数组存在本对象,说明之前已经被引用过,直接返回此对象
return children[index];
}
parents.push(parent);
children.push(child);
for (let i in parent) {
// 递归
child[i] = _clone(parent[i]);
}
return child;
};
return _clone(parent);
};
建议整体过一遍,看一遍,写一遍
为什么是英文教程
这里我废了九牛二虎之力,真是不容易找来了JavaScript基础知识的英文版本,这里面的英文单词、句子都比较简单,作为合格的工程师,程序员,后面不免要查看学习英文博客、英文文档,所以这里学习基础知识的时候,大家也可以练练英文。
毕竟这些技术都是外国人发明的,有些功能点哟个英语表达的更到位,需要仔细琢磨,翻译过来可能翻译的不准确,没法精确表达某些属性或者元素的含义,特别是css和js,大家后面看到就会有体会。
最后的篇章中我增加了一些总结,基本上都是工作中遇到的问题,供大家学习参考。
安装翻译插件
安装地址:https://magicfanyi.youdao.com/#/
翻译插件可以帮你翻译,同时学学英语!