前端为什么要学习js

你既然学习了前端,你就会发现前端的确只是完成了页面的展示效果,给文字和图片加上特效。

按照这个思路来说,后端只是把数据按要求关联起来,在数据库里面增删改查。然后接收一下前端的请求,再返回。

贸然给一件事物定了特性,轻视它,那么任何东西都不过如此。

在2009年之前,前端就是简单的这些特效,页面看着就是一套PPT模板。这种方式持续了很长时间。因为以前的B端数据量不大,页面都是整体刷新。

随着智能手机的普及,可以看到用户越来越喜欢B端,我们将很多复杂的C端功能搬到B端上,产生大量用完即走的应用(QQ空间/贴吧,回复及时可见)。这样简单的数据显示和copying and pasting from Stack Overflow的方式开始不奏效了。

人们开始发掘前端的力量了,怎样操作局部页面

js也开始慢慢的发光发热。

一旦我们对信息/内容进行实时更新时,就会设计到数据的大量提交/下载,高频的数据变动导致view视图的移动。数据的流动又带来了大量状态变化(准备提交,提交成功,开始下载,下载成功),如何控制状态成为了问题。

复杂的应用一般都会拥挤,用户可选项也多,怎么解决高并发和多选择的情况,减少页面的刷新等待时间成了一个关键问题。因为这个关系到用户量的流失,太卡了,不等了。

复杂的应用,代码量肯定不少,淘宝的购物车代码估计就有几千行(记住每个商品,价格、图片、、、),怎么有效的管理代码又是一个问题。
因为程序是一个团队的共同协作,你写的代码不仅健壮性要强,还需要简洁,能保证其他人读懂你的意图。

❤️ 程序员【代码管理】工具介绍❤️,热门语言更新这么快,你绕不过这一关的!

你在开发复杂的应用的时候,上线的版本肯定不一样,开发的要求是易于调试,便于观察。
上线的要求是运行稳定,不卡顿。
这样你就需要一个工具来帮你解决最后上线的问题。

深入学习js有什么用处?

讲到这里,你大概明白了,面对复杂应用开发,上面的问题,都需要用到js。

比如一个简单的例子,js中,你看完入门的原型链,作用域,一些对象方法,闭包,this之后,开始写代码。
你发现有时候你写的代码居然会具有多义性,也会是不确定的,检查着,然后发现是你在异步获取时,没有处理好程序的顺序,导致竞态的发生,于是你开始使用回调方法来处理这种问题,可是写着写着,你就爆炸了,你写出了大量的回调函数嵌套,里面是你的一大堆程序逻辑,乱糟糟的。

你开始还觉得没什么,直到有一天,出事了,老板跟你说,你写的程序多扣了用户的money,你要疯了,怎么会这样,于是你检查代码,发现完全看不懂。直到很多天后,终于搞好了,你下决心开始用promise简化代码,于是你的代码中出现了漂亮的链式调用,没有复杂的回调嵌套了。

很开心对不对,可是到某一天产品改需求(增加一个功能)了,你需要在某个promise(实例)过程中,做一件事情,可是promise中断不了。
这可怎么办,不想从class开始修改,于是你引入了generator生成器,使用协程来处理这种问题。

这样就很完美了,可是这一天,又发生了用户钱被多扣的问题,我艹,怎么回事,你发现是你用的第三方promise库里的测试代码多运行了一次函数。
这样就牵扯到了第三方库的信任问题,你不能把控制权反转给不信任的库,你需要自己信任的程序把握程序控制权,做好明显的区分!于是你又开始改代码。

耐心的折腾之后,你终于成为了前端leader,然后你的小兵在引用你的库的时候,出了一堆错,心里默默的骂了一句:“智障垃圾老大”。
到后来你发现你写的代码库,非常信任开发者的输入,导致某些人在部分函数输入时,参数的类型是错误的,你又开始改代码。。。

if (!source && typeof source !== 'object') {throw new Error('error')
}

直到有一天,后端出了事,你要去对接,要学习python。。。。发现,咦,这个语法真他妈像js,这个也像,嗯,简单。。。。然后很快解决了问题。。
看完上面的故事,有没有觉得,想升职,不深入学习js大概根本是不可能的吧。深入学习了一门语言,然后入门其他的语言更是简单。

最后

粉丝群
大概你进入前端这个门,就会知道,你的确应该被称为工程师,至少自己是这样称呼自己的。因为你正在做的是一个工程,而不是简单的写代码。

前端可不止页面美化这么简单,用户体验爽不爽还得靠它相关推荐

  1. 「纯前端容器」打造无缝平滑的用户体验

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 前端性能现状 提到前端你最先想到什么?前端工程?web?JavaScript.CSS.HTM ...

  2. 分享7款颜色的CSS表格样式美化网页表格用户体验

    原文出处:http://www.laozuo.org/4631.html 老左并不是一名网页设计师,但是经常在博客上捣鼓.修改一些自认为不太好的用户体验也仅仅局限在修改一些简单的CSS样式上,遇到不能 ...

  3. 欺诈网站都注重用户体验!你,还在等什么?!

    一.背景介绍 小编是北京 OneAPM 公司 Browser Insight(后文称 Bi)的运营人员,这款产品主要用处是针对网站前端页面进行性能优化,以提升用户体验,所以每天小编都要做很多运营工作, ...

  4. 在线投票系统(限制IP地址,前端界面需要自己美化(很简单))

    如果想要完整的代码,请前往百度云网盘 链接: https://pan.baidu.com/s/1OTOO8GDFNR49eakZtR8Ikg 密码: 1au9 toolbean DB.java too ...

  5. 图解浏览器缓存,教你提高用户体验

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 浏览器缓存,是浏览器端保存数据,用于快速读取或避免重复资源请求的优化机制,有效的缓存使用可以避免重复的网络 ...

  6. 国内各大互联网公司UED(用户体验设计)团队博客介绍

     UED是什么 UED = user experience design,用户体验设计. UED的通常理解,就是"我们做的一切都是为了呈现在您眼前的页面". UED团队包括:交互设 ...

  7. 用户体验设计和精益设计的平衡之道

    对你而言那个更重要:是制作出拥有杀手级用户体验的产品来吸引用户?还是尽快制作出能满足用户的产品并抢占大量的市场份额? 假设一款产品用户体验非常差的话,用户不会使用它,但假设作为市场上的先入者,用户也会 ...

  8. 交互技术翻译之用户体验

    心得体会 这次的文章主要是记载我们对<The Wiley Handbook of Human Computer Interaction>一书中的User Experience章节的梳理和体 ...

  9. 【AJAX】给你不一样的用户体验

    AJAX(异步JavaScript和XML) ,对它早有耳闻,如今,终于见到了它.     一.何为AJAX?      AJAX即"Asynchronous Javascript And ...

最新文章

  1. 实例讲解-单向列表的实现(1)
  2. WxCountUp - 数字滚动(微信小程序插件)
  3. centos7开启,关闭防火墙
  4. python数据库操作批量sql执行_使用Python批量修改数据库执行Sql文件
  5. linux man手册_读书笔记:Linux命令行与shell脚本编程大全 第一章~第五章
  6. E: Sub-process /usr/bin/dpkg returned an error code (1) Ubuntu安装apt-get命令报错
  7. pdf英文转换成html网页,PDF文件转换成html网页文件小方法
  8. Codeforces Round #696 (Div. 2)
  9. 使用Python定制词云
  10. jQuery CSS 操作函数
  11. Systrace分析app启动分析
  12. 完全免费绝地求生吃鸡罗技宏
  13. CentOS7安装OpenProj
  14. JavaScript 重定向
  15. #python#编程求主对角线元素之和
  16. 分享 10 个常见的 CSS 页面布局代码片段
  17. 冒志鸿:大公司不模仿你,说明你危险了
  18. 计算机键盘复制键,键盘按键设置复制粘贴的方法
  19. C++ 解9*9数独 LeetCode37题
  20. 关于esxi主机上vm无法ping通edge网关设备ip的处理

热门文章

  1. 如何彻底的删除MySQL数据库
  2. threeJs搭建智慧园区
  3. 经典量子力学照片-1927年索尔维会议
  4. PHP程序员和Python程序员的职业前景怎么样?我来聊聊自己的体会
  5. unsafe java_浅析 Unsafe 的使用
  6. 贴片微型滚珠振动开关的结构原理
  7. WebDriver中点击按钮、连接无效问题
  8. nginx 打开压缩gzip on有什么用
  9. unity制作类似DNF动态血条(仅一层血条)
  10. 猜猜看软件-学习总结(不定时更新)