有关JavaScript的发展历程,百度百科上已经说得很清楚了,这里不赘述,只是想谈一下我刚刚接触JS的一些感触。

作为后端java开发者,初次学习JS的时候,真的觉得JS非常的不严谨,很混乱。由于它的历史遗留问题和语言设计的初衷,导致有很多bug,后面修修补补,已经成为了feature。

尽管有很多让人迷惑和不适应的地方,但是JS毫无疑问是web前端动态页面领域内绝对的王者,所以该学还得学。

我非常建议,在学习JS之前,先学习Java或者C/C++这样的强类型语言,不用学的很精深,至少了解基本数据类型及其内存结构,还有函数和对象的概念和使用。这样再去学习JS的时候,很多疑惑的地方,会相对好理解。

强烈不建议毫无编程经验的纯小白,以JS作为第一门编程语言进行学习。

JS的一些特点

  • 解释性语言

    JS的代码不会先被编译成机器语言,而是直接内嵌入网页代码中,由解释器执行代码。

    现代浏览器都会自带JS解释器,比如Chrome的V8引擎。

  • 弱类型

    这是它不同于Java这种强类型语言的特点,对于变量的声明,不需要事先指定变量的数据类型。

    有得必有失,这种特点,也导致它不是很严谨,有很多隐藏性问题。

  • 函数式编程

    这也是它的特点,这种语法使得它的代码非常灵活,但是同时语法规则也更多。

    Java在1.8以后,也支持了函数式编程,加入了lambda表达式。

  • 单线程

    Java有多线程编程,相对应的语法会复杂。而JS因为是单线程的,所以不会有这部分问题,但是这样就会牺牲性能,所以JS提供了异步编程,来提升性能。

  • 面向对象

    现代编程语言,基本都会支持面向对象编程。

  • ECMAScript

    ECMAScript才是JS的正规名字,只是大家习惯叫JS了。

    ECMAScript是JS的一整套语法标准,而解释器则负责实现这一整套语法标准。于是JS代码,才会准确无误的在解释器中执行。

    ES6是JS的一个大的版本更新,类似于Java 1.8之于Java。

学习JS之前的准备工作

  • 教程

    推荐一个文本教程:现代 JavaScript 教程,它的web版本是免费的;

    当然还可以跟着各种视频学习;

    建议先跟着视频学习,然后再对着文本教程进行查漏补缺和加深理解。

  • JS知识点大全手册

    JS的知识点非常多且杂,当我们想要深入了解某些函数、方法时,应该学会查阅手册;

    这里推荐Mozilla JavaScript索引,它类似于JavaDoc,可以方便查阅。

  • 编辑器

    建议使用VS Code。

  • 开发调试工具

    因为JS是在浏览器中去执行的,所以要学会使用浏览器提供的开发调试工具。

    建议看在浏览器中调试这篇文章。

最新文章

  1. Expression Blend 4 学习笔记
  2. UVA 11768 Lattice Point or Not(扩展欧几里德)
  3. 【相当实用】如何让TortoiseSVN导出新增或修改过的文件
  4. OpenGL利用模板测试实现不规则裁剪
  5. css的引入方法2
  6. jQurey 获取当前时间
  7. SQL Server常用函数
  8. 模板-->中国剩余定理[互质版本]
  9. poj3685 二分套二分
  10. npm配置国内镜像资源+淘宝镜像
  11. install virtual enviroment on windows
  12. ORA-01427: 单行子查询返回多个行
  13. goldengate–使用filter+@GETENV在线重新初始化指定的table
  14. Wireshark数据抓包教程之安装Wireshark
  15. pascalVOC 标注文件,解析为TXT
  16. Mysql优化_内置profiling性能分析工具
  17. Android 图板之保存图像
  18. append 注意事项
  19. Altera FPGA 开启引脚片上上拉电阻功能
  20. nginx 反向代理 proxy_pass 及对比nginx与haproxy反向代理服务器功能、性能的优劣

热门文章

  1. 面向制造企业普适性ERP、MES类产品为什么那么难找?
  2. 驱动开发:通过ReadFile与内核层通信
  3. PHP实践项目【1】:注册登录页面
  4. 欢迎来到ktq_cpp的cnblog
  5. IDEA对数据库、表、记录的(增删改查可视化操作)、数据库安全性问题的演示
  6. 前端框架Vue------>第一天学习、Vue学习的路径、Vue官网(1)
  7. vue-router路由实现页面的跳转
  8. Magnet: Push-based Shuffle Service for Large-scale Data Processing
  9. SpringCloud(二) - Eureka注册中心,feign远程调用,hystrix降级和熔断
  10. Linux文件属性与管理