JavaScript概述
JavaScript学习目标
- 目标水平:入门级别(会使用JavaScript,不求精通)
- 当前水平:Python,C与C++编程基础,无Java编程基础,主业为数字IC前端设计与验证
- 选用教程:廖雪峰JavaScript教程
JavaScript简介
我经常讲JavaScript戏称为雷峰塔,与Java这个雷锋并没有什么关系,是一款常用与Web编程的脚本语言。
为什么起名叫JavaScript?原因是当时Java语言非常红火,所以网景公司希望借Java的名气来推广,但事实上JavaScript除了语法上有点像Java,其他部分基本上没啥关系。
一般的浏览器即可支持JavaScript的运行,最早这个语言适用于给网页添加一些动态的动画交互之类的东西,后来这个语言逐渐发展到现在node.js已经打通了后端,这个语言也变成了一个全能型脚本语言,至于作为一个数字IC硬件工程师要学习这个...主要是接触一下web编程,然后就是
简单粗暴的回答就是:因为你没有选择。在Web世界里,只有JavaScript能跨平台、跨浏览器驱动网页,与用户交互。
JavaScript开发环境搭建
简单的JavaScript脚本使用浏览器即可运行,不需要搭建环境,不过还是选择了个Node.js的环境吧,毕竟还是比较适应,这个直接下载安装即可,教程可以点这里,如果想要搭建一个机遇Sublime的环境可以参照这个
JavaScript基本语法
结尾的分号
JavaScript比较奇特的一点就是虽然并不要求在结尾添加分号;,但是浏览器执行引擎会在语句结尾自动添加;,这种行为可能会导致语义异常
注意:让JavaScript引擎自动加分号在某些情况下会改变程序的语义,导致运行结果与期望不一致。在本教程中,我们不会省略;,所有语句都会添加;。
注释
JavaScript的注释与C和Verilog相同,使用//
和/*...*/
分别实现行注释和块注释
数据结构
基本数据结构
JavaScript常用的有Number,字符串和布尔值三种基本数据结构
- Number:数字,不区分浮点数与定点数,特殊的值为NaN和Infinity,分别表示无法计算的数和超过范围的数,其中NaN与任何数均不相等,包括NaN
- 字符串:使用
" "
或' '
包裹的内容,与Python字符串相似 - 布尔值:仅可取True和False,与其他语言的布尔值相似
另外,还有些需要注意的
由于JavaScript这个设计缺陷,不要使用
==
比较,始终坚持使用===
比较。
这是由于==
是将数据类型转换为一致后再进行比较,而===
的比较包括数据类型的比较
唯一能判断NaN的方法是通过isNaN()函数
数组与对象
数组就是一组数的集合,使用[]定义,和Python数组类似
var test = [1,2,"test"]
console.log(test[0])
console.log(test[1])
console.log(test[2])
字典是键-值的对应,类似于Python的字典
var test_dict = {
"a":1,
"b":"data"
}
console.log(test_dict["a"])
console.log(test_dict["b"])
变量
JavaScript的变量就是标准的动态语言变量,不绑定数据结构,但是最好在使用前使用var声明,否则会被视为全局变量产生不必要的麻烦。有趣的是变量名允许使用$
字符和中文
变量名也可以用中文,但是,请不要给自己找麻烦。