JavaScript:是一种什么样的编程语言?
有关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:是一种什么样的编程语言?的更多相关文章
- JavaScript 一种轻量级的编程语言
JavaScript 一种轻量级的编程语言 作为一名计算机应用专业的学生,大一上学期开始接触了网页设计和制作,刚开始时感觉做网页很不错,简单地写几行代码就能做出效果来,当时感觉很兴奋,渐渐的喜欢上它 ...
- javascript是一种什么样的语言
javascript是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML网页上使用,用来给HTM ...
- VS Code - Debugger for Chrome调试JavaScript的两种方式
VS Code - Debugger for Chrome调试JavaScript的两种方式 最近由于出差的缘故,博客写的不是很多,一直想写一篇VS Code - Debugger for Chrom ...
- JavaScript的三种工业化调试方法
JavaScript的三种工业化玩法 软件工程中任何的语言如果想要写出健壮的代码都需要锋利的工具,当然JavaScript也不例外,很多朋友刚入门的时候往往因为工具选的不对而事半功倍,JavaScri ...
- 「JavaScript」四种跨域方式详解
超详细并且带 Demo 的 JavaScript 跨域指南来了! 本文基于你了解 JavaScript 的同源策略,并且了解使用跨域跨域的理由. 1. JSONP 首先要介绍的跨域方法必然是 JSON ...
- JavaScript版几种常见排序算法
今天发现一篇文章讲“JavaScript版几种常见排序算法”,看着不错,推荐一下原文:http://www.w3cfuns.com/blog-5456021-5404137.html 算法描述: * ...
- javaScript的2种变量范围有什么不同
1.javascript怎样选中一个checkbox,怎样设置它无效? document.all.cb1[0].disabled = true; 2.js中的3种弹出式消息提醒(警告窗口,确认窗口 ...
- JavaScript的4种this调用模式
方法调用模式:函数调用模式:构造器调用模式:apply调用模式: 方法调用模式: 当一个函数被保存为对象的一个属性时,我们称它为一个方法.当一个方法被调用时,this被绑定到该对象. 函数调用模式: ...
- 原生JavaScript支持6种方式获取元素
一.原生JavaScript支持6种方式获取元素 document.getElementById('id'); document.getElementsByName('name'); document ...
- [js]javascript中4种异步
javascript中4种异步: 1.ajax 2.定时器 3.事件绑定 4,回调 定时器 //顺序执行 /* var s = 0; for (var i = 0; i < 10000; i++ ...
随机推荐
- ERP 系统成功应用取决于哪几个方面?
ERP系统成功应用主要取决于企业一把手的大力支持.专业的实施顾问.优秀的ERP系统三个方面! 没有企业一把手的大力支持,ERP的应用基本上不可能获得成功.ERP不是简单的信息化工程,它是企业资源计划, ...
- Node.js(一)基本node.js读取删除
npm init -y(初始化项目) npm uninstall (xxx模块名称)=>(移除模块) var text2=require("./text2"); //解构 c ...
- 手把手教你使用LabVIEW OpenCV dnn实现物体识别(Object Detection)含源码
前言 今天和大家一起分享如何使用LabVIEW调用pb模型实现物体识别,本博客中使用的智能工具包可到主页置顶博客LabVIEW AI视觉工具包(非NI Vision)下载与安装教程中下载 一.物体识别 ...
- 如何用Virtualbox搭建一个虚拟机
序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们肯定会接触Linux服务器,除了使用云服务搭建Linux服务器外,我们一般也可以在自己的电脑上安装虚拟机来搭建Linux服务器用于各种功能的验 ...
- 关于TP5模板输出时间戳问题--A non well formed numeric value encountered
某日.因为一个项目.控制器我是这么写的 1 /** 2 * get admin/Picture/index 3 * 显示所有图册信息 4 * @return view 5 */ 6 public fu ...
- NLP之基于Bi-LSTM和注意力机制的文本情感分类
Bi-LSTM(Attention) @ 目录 Bi-LSTM(Attention) 1.理论 1.1 文本分类和预测(翻译) 1.2 注意力模型 1.2.1 Attention模型 1.2.2 Bi ...
- 35.ListSerializer详解
ListSerializer继承了BaseSerializer 一般情况下我们不直接使用ListSerializer ListSerializer会自动调用,序列化many=True的字段时,会自动调 ...
- AngouriMath: 用于C#和F#的开源跨平台符号代数库
AngouriMath是一个MIT协议开源符号代数库.也就是说,通过AngouriMath,您可以自动求解方程.方程组.微分.从字符串解析.编译表达式.处理矩阵.查找极限.将表达式转换为LaTeX,以 ...
- 你所不知道的 vscode,汇集历史版本中你可能不知道的新特性
壹 ❀ 引 vscode可以毫不夸张的说是大部分前端同学吃饭的工具(webstorm除外),随着时间的推移vscode其实也在不断推出了各种新功能新特性,但vscode并不会默认就实装这些新功能,我相 ...
- 下一代工具链「GitHub 热点速览 v.22.43」
作为一个前端工程师,你这周被下一代的前端工具链 Turbo 刷屏了吗?不只是 Turbo 这个小工具,作为一个社区生产力工具,本周思否还开源了他们的问答系统 answer,能直接用上相关的技术标签也省 ...