JavaScript基本语法
首先要明确一点:JavaScript是区分大小写的
使用;
作为每一行代码的结尾(其实不加;
也可以,但推荐加上)
标识符
JavaScript中标识符主要组成如下:
- 第一字符必须是字母、下划线
_
或一个美元符号$
。 - 后续字符可以是字母、下划线、美元符号或数字。
- 不能把关键字、保留字、
true
、false
和null
作为标识符。
关键字
常见关键字如下
break、else、new、var、case、finally、return、void、catch、for、switch、while、continue、function、this、with、default、if、throw、delete、in、try、do、instanceof、typeof等
保留字
ECMAScript-262还描述了另一组不能用作标识符的保留字。尽管保留字在JavaScript中还没有特定的用途,但它们很有可能在将来被用作关键字。
abstract、enum、int、short、boolean、export、interface、static、byte、extends、long、super、char、final、native、synchronized、class、float、package、throws、const、goto、private、transient、debugger、implements、protected、volatile、double、import、public等
注释
// 单行注释
/*
多行注释
多行注释
*/
变量
使用关键字var
或let
可以声明变量,声明的同时可以赋值,例如
var name;
name = '张三';
var address = '北京';
let phone = 123;
注意:
-
重复声明时,后面的声明无效,即该变量还是前面的,例如
var name = '张三'; var name; // 声明无效 console.log(name); // 张三 var name = '李四'; // 声明无效,等价于name = '李四' console.log(name); // 李四
-
不用
var
或let
定义变量也可以,此时该变量作为window
对象(全局对象)的属性,即:name = '张三'; // 等价于window.name = '张三';
-
变量默认值为
undefined
-
var
和let
的主要区别在于作用域:var
是函数作用域,let
是块作用域
数据类型
JavaScript的数据类型主要分为两种:
-
基本数据类型,分为:
number
:数值型,整形和浮点型都属于数值型,整数用0
开头表示8进制,用0x
表示16进制,NaN
表示非数字(虽然不是数字,但却是number
类型),Infinity
表示无穷大string
:字符型,用引号(单引号和双引号都行)引起来的一串(个)字符,可以使用+
拼接boolean
:布尔型,即true
和false
null
:空,表示一个空对象的地址指定指向的为空,只有一个值null
undefined
:未定义,未赋值的变量的值,只有一个值undefined
-
引用数据类型:
object
:对象型,用来声明存储一个对象,对象里可以包含基本数据类型,函数,正则等,例如:var a = new Number(10); // new:创建一个对象 var people = { name : '张三', sex : '男', age : 10 }; // 自定义一个对象 console.log(a == 10); // true,==只比较值 console.log(a === 10); // false,===严格相等,会比较类型
使用typeof
可以获取变量的类型,返回的是string
类型
var a = new Number(10); // new:创建一个对象
console.log(typeof a); // object
console.log(typeof typeof a); // string
运算符
提示:JavaScript支持+=
等自运算符
-
算数运算符:
+
、-
、*
、/
、%
、++
、--
注意:其除法是真除法,不是整除
-
关系运算符:
>
、<
、>=
、<=
、==
、===
、!=
、!==
其比较主要分为如下几种情况:
- 数值比较,是比较其大小
- 字符比较,是比较ASCII码值的大小;
- 汉字比较,是比较其Unicode编码值的大小
可以通过charCodeAt(x)
获取x位置的编码值 - 布尔比较,
true
为1,false
为0
注意:
===
是严格等于,即比较类型也比较值,==
是不严格等于,只比较值 -
逻辑运算符:
&&
、||
、!
一般情况下返回布尔型,但以下两种情况例外
- 在使用
&&
时,如果两个中任意一个操作数为非逻辑值,第一个操作数的结果为true时,返回第二个操作数的值;第一个操作数的结果为false时,返回第一个操作数的值。 - 在使用
||
时,如果两个中任意一个操作数为非逻辑值,第一个操作数的结果为true时,返回第一个操作数的值;第一个操作数的结果为false时,返回第二个操作数的值。
例如:
console.log(0&& 3); // 0 console.log('hello' && null); // null console.log(0 || 1 + 1); // 2 console.log(1 || false); // 1
注意:非布尔型在进行逻辑运算时,
"",undefined,null,0
将作为false
,其他都作为true
,包括空对象和空数组。 - 在使用
-
位运算符:
-
三目运算符
表达式1 ? 表达式2 : 表达式3
如果表达式1成立,返回表达式2的结果;否则,返回表达式3的结果。
流程控制语句
和Java一样,主要使用if…else…,switch,for,while,do…while,不再赘述