有关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是在浏览器中去执行的,所以要学会使用浏览器提供的开发调试工具。

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

JavaScript:是一种什么样的编程语言?的更多相关文章

  1. JavaScript 一种轻量级的编程语言

     JavaScript 一种轻量级的编程语言 作为一名计算机应用专业的学生,大一上学期开始接触了网页设计和制作,刚开始时感觉做网页很不错,简单地写几行代码就能做出效果来,当时感觉很兴奋,渐渐的喜欢上它 ...

  2. javascript是一种什么样的语言

    javascript是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTM ...

  3. VS Code - Debugger for Chrome调试JavaScript的两种方式

    VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于出差的缘故,博客写的不是很多,一直想写一篇VS Code - Debugger for Chrom ...

  4. JavaScript的三种工业化调试方法

    JavaScript的三种工业化玩法 软件工程中任何的语言如果想要写出健壮的代码都需要锋利的工具,当然JavaScript也不例外,很多朋友刚入门的时候往往因为工具选的不对而事半功倍,JavaScri ...

  5. 「JavaScript」四种跨域方式详解

    超详细并且带 Demo 的 JavaScript 跨域指南来了! 本文基于你了解 JavaScript 的同源策略,并且了解使用跨域跨域的理由. 1. JSONP 首先要介绍的跨域方法必然是 JSON ...

  6. JavaScript版几种常见排序算法

    今天发现一篇文章讲“JavaScript版几种常见排序算法”,看着不错,推荐一下原文:http://www.w3cfuns.com/blog-5456021-5404137.html 算法描述: * ...

  7. javaScript的2种变量范围有什么不同

    1.javascript怎样选中一个checkbox,怎样设置它无效? document.all.cb1[0].disabled = true;   2.js中的3种弹出式消息提醒(警告窗口,确认窗口 ...

  8. JavaScript的4种this调用模式

    方法调用模式:函数调用模式:构造器调用模式:apply调用模式: 方法调用模式: 当一个函数被保存为对象的一个属性时,我们称它为一个方法.当一个方法被调用时,this被绑定到该对象. 函数调用模式: ...

  9. 原生JavaScript支持6种方式获取元素

    一.原生JavaScript支持6种方式获取元素 document.getElementById('id'); document.getElementsByName('name'); document ...

  10. [js]javascript中4种异步

    javascript中4种异步: 1.ajax 2.定时器 3.事件绑定 4,回调 定时器 //顺序执行 /* var s = 0; for (var i = 0; i < 10000; i++ ...

随机推荐

  1. day05多表查询01

    多表查询 前面讲过的基本查询都是对一张表进行查询,但在实际的开发中远远不够. 下面使用表emp,dept,salgrade进行多表查询 emp: dept: salgrade: 1.前置-mysql表 ...

  2. aws-cli命令-ec2实例相关的操作

    aws上可以使用aws-cli的方式管理实例,记录一些常用的操作 1.启动.关闭.终止实例(目前笔者发现只能通过指定实例ID进行管理) # 启动/关闭/重启 指定的实例 aws ec2 start-i ...

  3. 老杜MySql——34道作业题

    老杜MySql链接:https://www.bilibili.com/video/BV1Vy4y1z7EX?p=132 本次随笔主要来源于老杜MySql讲解视频后面的作业题,加上个人的一些理解,以及整 ...

  4. 【JavaScript排序】 sort()方法(解决null、undefined、0之间的排序(混乱)问题)

    JavaScript排序 - sort()方法 --解决null.undefined.0之间的排序(混乱)问题 一.普通的数组排序 ​ JavaScript中用方法sort()为数组排序.sort() ...

  5. C语言------程设设计入门

    仅供借鉴.仅供借鉴.仅供借鉴(整理了一下大一C语言每个章节的练习题.没得题目.只有程序了) 文章目录 1:程序设计入门 2 .实训目的及要求 3.代码实验(包含运行结果) 4 .实验总结 1:程序设计 ...

  6. 4.pytest结合allure-pytest插件生成allure测试报告

    之前我们使用的测试报告插件是pytest-html 这次使用的插件是allure-pytest,更加美观强大 安装插件 pip3 install allure-pytest 安装allure(Mac) ...

  7. 【vue2】Style和Class,条件,列表渲染,双向数据绑定,事件处理

    目录 1.style和class 2. 条件渲染 2.1 指令 2.2 案例 3. 列表渲染 3.1 v-for:放在标签上,可以循环显示多个此标签 3.2 v-for 循环数组,循环字符串,数字,对 ...

  8. 题解 CF630L Cracking the Code

    前言 为什么没有人暴力快速幂啊,Ta不香嘛/kel 题意 设读入为 \(abcde\) ,求 \(acedb^5\mod{10^5}\) 的结果. \(\sf {Solution}\) 显然暴力啊. ...

  9. 重新整理 .net core 实践篇 ———— dotnet-dump [外篇]

    前言 本文的上一篇为: https://www.cnblogs.com/aoximin/p/16861797.html 该文为dotnet-dump 和 procdump 的实战介绍一下. 正文 现在 ...

  10. 《Design by Contract for Embedded Software》 翻译

    原文: Design by Contract for Embedded Software (state-machine.com) Design by Contract is the single mo ...