1-如何学习JavaScript

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,大家后面看到就会有体会。

最后的篇章中我增加了一些总结,基本上都是工作中遇到的问题,供大家学习参考。



请遵守《互联网环境法规》文明发言,欢迎讨论问题
扫码反馈

扫一扫,反馈当前页面

咨询反馈
扫码关注

站长云微信公众号

返回顶部