• 个人对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日,于鹅城

  • 相关阅读:
    手把手教你写vue插件并发布(一)
    npm 换源
    ajax上传文件显示进度
    angularjs的表单验证
    利用公钥认证登录远程服务器
    centos 搭建 leanote
    读书笔记-JavaScript高级程序设计(1)
    C++读写TXT文件中的string或者int型数据以及string流的用法
    不相交集ADT--链表实现
    不相交集ADT--数组实现
  • 原文地址:https://www.cnblogs.com/ww01/p/12096825.html
Copyright © 2020-2023  润新知