前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >新人自学前端,如何快速打好前端开发基础?

新人自学前端,如何快速打好前端开发基础?

作者头像
web前端教室
发布2019-06-18 17:20:17
4820
发布2019-06-18 17:20:17
举报

怎么样能快速的打好前端开发的基础,然后让自己的技术尽快的提高一个层次?相信这是每一个前端新人都在思考的问题。而这个问题也不止一个同学问过我,怎么样能快速学好前端?Js学到什么程度可以?其实这类问题都有一个共同的点,就是【前端开发中真正重要的技术是什么?】

在我个人主观看来,前端开发技术体系中的核心技术有且只有一个,就是JavaScirpt。不深入掌握JavaScirpt,就不可能深入理解整个前端技术体系。为什么这么说呢?曾经有同学问过我,“难道html5、css2、3就不是核心技术吗”?我当时大概是这样回答的,“因为是Js驱动着h5、css,而不是反过来”。

<!-- -->

那么,为什么一定要掌握JavaScirpt呢?有同学vue、reactJs框架用的很6也不错啊。短期看确实是没有问题的,但如果从长期来看。不掌握JavaSciprt,就不能透过现象看本质。什么意思呢?是这样,

1、函数都是对象,对象是引用传递;

2、不理解第1点,就不会明白redux其实是把函数的引用传递到了reducers里面;

3、不深入理解prototype、constructor,就不会明白es6中的constructor中的supers()其实就是下面这三行代码,

function a(){}

function b(){}

b.prototype = new a();

4、如果不懂js的闭包,就不会明白私有方法;

5、如果不明白第4点,就不可能看懂数据属性、访问器属性Object.defineProperty()的get和set;

6、更不会明白vueJs的双向绑定的实现原理,

7、、、

这种情况持续一二年,就会发现自己只会一些vue、react、jq、js,然后想提高也不知道看什么,想看一些深入的东西也看不懂。然后自己的技术和工资水平就长期在低水平徘徊。

<!-- -->

那么,网上的资料那么多,到底该看哪些呢?或是看哪本书呢?不用纠结,我给你们总结出来了,原生JavaScritp核心、重点的内容,就是下面这些,

你只要把这些内容搞懂80%,你的JavaScript的基础就可以说已经打好了。这时有同学已经懵了,【这些东西全不懂啊】。。。

<!-- 现在我们先来分析一下,上面截图中的东西都是什么? -->

this,是一个对象;

new,生成是一个实例,其实也是一个对象;

prototype,它是每个函数都有的属性,它的结果是一个对象;

constructor,它指向构造函数,函数也是对象;

call、apply,它要传入的值是this,也是对象;

继承是a.prototype = new b(),操作的是对象;

原型链主要就是prototype、constructor,也是操作对象;

模块化,主要就是操作函数,函数是什么?还是对象

闭包,父函数返回子函数,函数是对象;

IIFE(function(){})(),自动执行函数,函数是对象;

作用域链,操作this的,还是对象;

__proto__,每个对象都有的隐式原型属性,值也是对象;

...

..

你可以发现,这些东西全都是【对象】,没有例外。为什么呢?因为JavaScirpt是基于对象的脚本语言。所以,学明白JavaScript的首要条件就是,从对象的角度来看待Js,【对象是按引用传递的】。

所以,从对象的角度来讲,上面截图中只有一个东西,就是“对象”。之所以分成那么多名字,只是为了应对不同情况而已。如果认识不到这一点,就会陷入学之不尽的困境中。

JavaScirpt比较讨厌的一点,就是同一个东西在不同的情况下,会有不同的名字。例如函数,

function a(){},

这是普通的函数;

function a(){}

new a();

这时函数a的名字叫构造器

function a(){}

a.xx = function(){console.log('xxx')}

a.xx();//xxx

这时xx它叫静态方法

function a(){

this.axx = function(){}

}

这时axx叫动态方法

function a(){

var x = 1;

function b(){console.log(x)}

return b;

}

这时函数b,叫闭包

function a(){

this.fn = function(){}

}

这时fn函数叫公共方法

function a(){

function b(){}

this.b1 = b;

}

这时函数b叫私有方法

而b1函数叫什么特权方法,因为它能访问私有和公有方法;

但同学们抛开这些名字仔细看看,它们都是函数啊。对于它们用操作,要么是操作引用,要么是通过作用域。而引用和作用域,是最基础最基础的概念了。所以啊,这就像打地基一样,第一层不牢,自然第二层、第n层不牢。你看不懂上面截图中的那些重要知识点,是因为最基本的关于对象、引用的知识理解不深。

<!-- -->

那么怎么办呢?

第一步,彻底理解、记牢最基本的概念;

第二步,从对象、引用的角度去看JavaScirpt;

第三步,牢记Js传来传去的都是引用;

不能被js的各种花里胡哨的名称、概念晃花了眼,要透过现象看本质,【它们都是对象】。

因为篇幅所限,这篇文章写到这里基本也就要结束了。如果这方面还有什么其它的疑问,可以加我vx:blazeloulan,或在文章末尾留言给我。我感脚,我还是可以给出一些建议的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 web前端教室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档