各种宿主环境提供额外的 API(即只能在该环境使用的接口),以便 JavaScript 调用。以浏览器为例,它提供的额外 API 可以分成三大类。
浏览器控制类:操作浏览器
DOM 类:操作网页的各种元素
Web 类:实现互联网的各种功能
如果宿主环境是服务器,则会提供各种操作系统的 API,比如文件操作 API、网络通信 API等等。这些你都可以在 Node 环境中找到。
JSON(JavaScript Object Notation)
JS对象简谱,一种轻量级的数据交换格式
“Atwood 定律”:
“所有可以用 JavaScript 编写的程序,最终都会出现 JavaScript 的版本。”
DHTML(Dynamic HTML,动态 HTML)
DOM 模式(Document Object Model,文档对象模型)
Ajax 方法(Asynchronous JavaScript and XML)
GWT(Google Web Toolkit)
推荐安装 Chrome 浏览器,它的“开发者工具”(Developer Tools)里面的“控制台”(console),就是运行 JavaScript 代码的理想环境。
进入 Chrome 浏览器的“控制台”,有两种方法。
直接进入:按下Option + Command + J(Mac)或者Ctrl + Shift + J(Windows / Linux)
开发者工具进入:开发者工具的快捷键是 F12,或者Option + Command + I(Mac)以及Ctrl + Shift + I(Windows / Linux),然后选择 Console 面板
进入控制台以后,就可以在提示符后输入代码,然后按Enter键,代码就会执行。如果按Shift + Enter键,就是代码换行,不会触发执行。
JavaScript 语言的函数是一种独立的数据类型,以及采用基于原型对象(prototype)的继承链。这是它与 Java 语法最大的两点区别。JavaScript 语法要比 Java 自由得多。
另外,Java 语言需要编译,而 JavaScript 语言则是运行时由解释器直接执行。
总之,JavaScript 的原始设计目标是一种小型的、简单的动态语言,与 Java 有足够的相似性,使得使用者(尤其是 Java 程序员)可以快速上手。
JavaScript 的基本语法
1、语句
- JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。
- 语句(statement)是为了完成某种任务而进行的操作,语句以分号结尾,一个分号就表示一个语句结束。多个语句可以写在一行内。
- 分号前面可以没有任何内容,JavaScript 引擎将其视为空语句。
2、变量
- 变量名区分大小写
- JavaScript 是一种动态类型语言,也就是说,变量的类型没有限制,变量可以随时更改类型。
- 如果使用var重新声明一个已经存在的变量,是无效的。但是,如果第二次声明的时候还进行了赋值,则会覆盖掉前面的值。
- JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。
-
console.log(a);
var a = 1;var a;
console.log(a);
var a = 1;
3、标识符
3.1 JavaScript 语言的标识符对大小写敏感
3.2 JavaScript 引擎遇到非法标识符,就会报错
3.3 标识符命名规则如下:
第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9。
3.4 中文是合法的标识符,可以用作变量名。
3.5 保留字,不能用作标识符
4、注释
- 单行注释,用//起头
- 多行注释,放在/*和*/之间
- 兼容 HTML 代码的注释,所以<!--和-->也被视为合法的单行注释
- 需要注意的是,-->只有在行首,才会被当成单行注释,否则会当作正常的运算。
// 只有x = 1会执行,其他的部分都被注释掉了 x = 1; <!-- x = 2; --> x = 3; |
5、区块
- 使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。
- 对于var命令来说,JavaScript 的区块不构成单独的作用域(scope)。与不使用区块的情况没有任何区别
6、条件语句
- 所谓布尔值,指的是 JavaScript 的两个特殊值,true表示真,false表示伪。
- 有些开发者习惯将常量写在运算符的左边,这样的话,一旦不小心将相等运算符写成赋值运算符,就会报错,因为常量不能被赋值。
- switch语句内部采用的是“严格相等运算符”
7、标签
7.1 JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
label:
语句
7.2 标签通常与break语句和continue语句配合使用,跳出特定的循环。
来源:https://blog.csdn.net/mysteryflower/article/details/100539131