zoukankan      html  css  js  c++  java
  • 个人对JS的一些见解

    转载保留署名:有蚊子

    优点:

    1.广泛,无论对于用户还是开发者,可以说是最广泛使用的编程语言

    2.生态完美,多个端、多类库、多种框架,众多优秀团队支持,迄今没有任何一种语言能做到,真正的众星拱月

    3.能处理任何形式数据,特别是对于json的处理

    4.易用,对初学相当友好,你只需要装一个浏览器,就能进行开发

    5.特别适合于,我不想因为想做一件简单的事情,而引入一堆的模板代码,如:类型处理,异常处理,各种继承

    缺点:

    1.内置函数太少,内置语言特性也不多(即使是ES6时代,也是这样)

    2.数值处理能力实在是弱,文件/IO操作依赖浏览器,本身提供的对象也极少(你会发现,node端对file operate是进行了较大扩充)

    3.实际业务中,处理数据总是要自己写算法,例如:对集合数据的交、并、补集

    4.做业务开发时,不借助库,使用纯JS(ES6)开发,是痴心妄想,除非你有富余的开发周期

    5.整体太过于松散,容易出现runtime(运行时)错误

    6.莫想着用它来做多媒体解码,你能找到的库,很少

    编程,我会去了解实现方式,原理思想等,但是这些都是为了解决问题服务的。我讨厌面试官恨不得别人能背ES规范,能写出100种数组去重,能默写webpack配置规则,我算你左看Vue源码,右改React,懂得东西超过99%前端,何如?我觉得,技术是为解决问题服务的,就像以前JS数组去重,要写一堆算法,经典的有不下5种实现方式,ES6出来后,我用一个Set一行代码就完成,你要给我复杂的去重,我就搬出lodash来破解,会多几种去重对解决问题的提高相当有限!钻研技术不是目的,解决问题才是啊!我情愿学一个知识点,解决3个问题,也不要学3个知识点解决1个问题,剩下的时间,去见识更多人,去解决更多硬核问题,去陪家人,哪个不好?非得懂得复现Vue双向绑定就是合格,能从原理层面说出几种深拷贝的对比细节就是优秀,能手写webpack 配置就是加分?工具库看看文档,谁不会用!深拷贝我一句JSON.stringify()行天下,有问题再说啊,反正90%情况下遇不到!双向绑定了解原理会用来解决问题就行了,非得复现吗,要ES7 8出了个语言特性,把Object.defineProperty()给替了呢。有空做什么,当然是看多几个设计模式,看多几个经典算法,好好思考怎么落地,怎么用来解决实际问题!

    说白了,就是出发点不同:

    1.出发点是钻研技术,那技术知识储备当然是多多益善。世界这么多程序员,每个人一种思想化作技术,谁知道下一步谁的思想是主流,你学不完的。

    2.出发点是解决问题,那技术就是工具,够用就好。我们就要保持学习,即关注有什么技术能做什么而不去深究它,到了用时,再回去获取能解决问题的点,所以我会说意识重于知识

    我再说前端

    前端的过去

    前端的过去,从原始阶段直接加载静态页面到基于异步请求的动态网页出现,前端开始丰富起来。bootstrap是鼻祖,虽然不能说框架的东西100%原创,但是绝对可以说是集大成者的先驱,它给布局与自适应,UI控件封装,样式命名等,贡献了宝贵的、规范的、先行的经验,我也是从bootstrap学习前端开始,现在的UI框架,都是一定找得到bootstrap的身影,例如超级经典的栅格布局。再说另一个重要鼻祖,jQuery。jq的出现,一是它极大简化了操作Dom的方式,二是通过一众相当实用的函数,有效的弥补了js内置函数的匮乏,同时发展出一种封装技术,简化js封装,渐渐地,我们可以发现jq库已经成行成市,如http://www.jq22.com/。我个人是不喜欢jq22的,因为它的资源有一部分是在网上收集的开源,竟然拿来卖钱??

    前端的现在

    R V A 三足鼎立,外加各种自研 类R V ,如Taro、小程序JS等,还有端拓展如Electron,RN,甚至是语言的拓展如TypeScript,我就不多说了,正式由于前端的日益强大,消解了大部分以往在服务端的业务处理代码,同时解放了生产力,如算力,促进了服务端转向微服务的架构

    前端的未来

    1.serverless与云开发

    2.统一多端开发,如flutter

    JS用得越久越觉得,它给你业务编程的支持实在有限

    本文不再更新

    2019年12月25日,于鹅城

  • 相关阅读:
    一行代码更改博客园皮肤
    fatal: refusing to merge unrelated histories
    使用 netcat 传输大文件
    linux 命令后台运行
    .net core 使用 Nlog 配置文件
    .net core 使用 Nlog 集成 exceptionless 配置文件
    Mysql不同字符串格式的连表查询
    Mongodb between 时间范围
    VS Code 使用 Debugger for Chrome 调试vue
    css权重说明
  • 原文地址:https://www.cnblogs.com/ww01/p/12096825.html
Copyright © 2011-2022 走看看