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数组类似

1
2
3
4
var test = [1,2,"test"]
console.log(test[0])
console.log(test[1])
console.log(test[2])

字典是键-值的对应,类似于Python的字典
1
2
3
4
5
6
var test_dict = {
"a":1,
"b":"data"
}
console.log(test_dict["a"])
console.log(test_dict["b"])

变量

JavaScript的变量就是标准的动态语言变量,不绑定数据结构,但是最好在使用前使用var声明,否则会被视为全局变量产生不必要的麻烦。有趣的是变量名允许使用$字符和中文

变量名也可以用中文,但是,请不要给自己找麻烦。