为了账号安全,请及时绑定邮箱和手机立即绑定

学习前端必须要会的内容,都有哪些?

/ 猿问

学习前端必须要会的内容,都有哪些?

慕九州22958251 2018-05-14 16:54:08
查看完整描述

13 回答

?
码农2号

html

css

js

这是必须会的,菜鸟级别的都要会。

查看完整回答
3 反对 回复 2018-05-14
?
慕无忌3012160

写在前面:前端实际上是很好学的 ,首先一点要有兴趣。为什么都说兴趣是最好的老师,其实这里的意思是,兴趣不仅能使我们热爱这个东西,重要的是能使我们对这个东西更容易理解。理解起来就很好学了。首先你要有一定的英语基础,起码高中英语考试能够在90分以上,而且对于英语也是由兴趣的学习,不能是应试教育的学习。我在PM圈子网见过很多做IT 的,英语水平都非常高,最起码口语是必须要有基础的。另外,我们做这个工作的时候,应该就是有那种在娱乐的感觉。用手敲着键盘,很酷炫。这样的人不愁学不好。下面给大家说一个在学前端时注意的。

不要为了使用 Feature 而使用 Feature。

这里的 Feature 是广义的,包括但不限于如 原型链 等语言特性,还有 设计模式以及各种插件 等开发中常会遇到的概念。Features 的出现都是为了解决一种或一类问题的。具体的如 时钟插件,是为了简化页面上的时钟显示;立即执行函数,可以创建一个作用域以保持变量,还可以防止内部变量污染外部环境;抽象的如 设计模式,是前人总结的一系列经验,可以解耦系统。既然这些都是解决方案,自然要在问题出现时才使用。

我建议:对于一个新接触的 Feature,用一句或几句简练的语言概括其功能,并记住它——记一句话比记住用法容易多了,具体用法不重要,忘了可以查。对于一个需求,将其拆解成若干个问题,并匹配出用得上的 Features,从而完成需求。

举个例子:

上司叫你完成一个无限加载文章列表。你应该这么思考:

具体的功能是什么?

首屏先加载一部分数据。监控滚动条,若滚动条到达底部,加载下一部分数据。以此类推,直至没有数据。

于是,你会得到两个问题:

  1. 如何动态加载数据?

  2. 如何监控滚动条?

如果有知识储备,很快就知道 1 的答案是 ajax,2 的答案是监听 scroll 事件。不知道也不要紧,Google 一下就记住了。

于是你会写:

var hasNext = true;function loadData() {    // ajax load data}

$(window).on('scroll', function () {    if (hasNext)        // call loadData})

写完了,这很好,功能都有了,也并没用到一些所谓“高大上”的东西。这时你应该想想:这么做是不是最好呢?

好像的确不是,比如 hasNext 暴露在顶级作用域,容易被熊孩子篡改。限定作用域?对啦,就是 IIFE:

(function () {    var hasNext = true;function loadData() {    // ajax load data}

$(window).on('scroll', function () {    if (hasNext)        // call loadData})
})()

你会看到很多jQuery 插件都是这么写的,这并不是为了装逼,而是确有用处。

再想一想:如果上司加需求,还有好多其他的列表也要无限加载呢?复制粘贴?绝对不行,这是开发一大忌。这里边好多东西都是相似的,如 loadData,以及 scroll。只不过 参数如 url 有些不同罢了。因此我们可以把公共逻辑提取出来,封装成类——你知道,类有可重用性,易扩展性:

(function () {    function List (url, $container) {        this.hasNext = true
        this.url = url        this.$container = $container
        
        $(window).on('scroll', function () {            if (this.hasNext)                // call loadData
        }.bind(this))        
        this.loadData();
    }
    
    List.prototype.loadData = function () {        // ajax load data
    }
})()

如果上司又说:每篇文章需要定时更新内容。这怎么办?如果用传统方法,DOM 操作会非常繁琐,前面动态加载时的 HTML 拼接已经够烦人的了。数据与呈现保持同步?那不就是 MVVM 嘛!你所学习的 MVVM 框架又可以用上了。

总而言之:要多想。在PM圈子网,很多技术大牛都是一个人冥思苦想,比别人付出更多努力的。

功能做好了,想一想:能不能更简洁?需求改了怎么办?

这些都是问题,而只要有问题,就能用上对应的解决方案。

这种习惯不止限于 js,可通用于所有的语言。时间长了,编程能力自然就提升了。


查看完整回答
2 反对 回复 2018-05-15
?
传奇10号

首先了解一下    web前端工程师这个概念。就知道 前端该学什么  。就这么简单。

查看完整回答
1 反对 回复 2018-05-15
?
qq_土豆蛙蛙_0

挺好的

查看完整回答
反对 回复 2018-05-15
?
qq_土豆蛙蛙_0

挺好的

查看完整回答
反对 回复 2018-05-15
?
qq_土豆蛙蛙_0

这个方式可行?

查看完整回答
反对 回复 2018-05-15
?
文_氓

H5+CSS3+ES6+NODE+PS这些是基础,vue 、react、最好有点mysql  nosql。

查看完整回答
反对 回复 2018-05-15
?
慕工程8443727

DDD

查看完整回答
反对 回复 2018-05-15
?
qq_命运之骰_0

html css js三剑客,从基本的div布局到js一些特效实现,这是基本的,还有调试工具,w3c的一些规范,框架等等,我也是小白一枚

查看完整回答
反对 回复 2018-05-14
?
pardon110

在学习任何一门语言之前,先学会测试,调试。

查看完整回答
反对 回复 2018-05-14
?
Keyro

首先html+css+js是必须要会的,如果以上基础都比较扎实就可以学习一些新的框架,例如react,vue,angular,还有就是要懂一些nodejs

查看完整回答
反对 回复 2018-05-14

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信