变量
// 合法变量名
var ab12;
var _ab12;
var $ab12;
// 非法变量名
var 12ab; // 不能数字开头
var *ab12; // 不能包含*或以*开头
var ab+12; // 不能包含+
var -ab12; // 不能包含-或以-开头
// 全局变量
var g1 = 12; // 函数外声明均为全局范围
g2 = 13; // 默认为全局对象的属性,如window.g2 = 13
// 局部变量
function f1() {
var a = 12; // 函数内声明,作用在该函数范围内,局部的
}
// 变量提升
console.log(a); // 结果12,所有变量的声明语句都会被提升到代码首部
var a = 12;
var b = 13;
console.log(b); // 结果13,与上面无差异
数据类型
// 6种类型
number // 数值
boolean // 布尔值
string // 字符串
object // 对象
null // 空值
undefined // 未定义
// 数值(number)
1 === 1.0 // true,所有的数值都是以浮点值存储的
0/0 // NaN,非数值
1/0 // Infinity,无穷
parseInt('100') // 100,把字符串转换为整数
parseFloat('1.12') // 1.12,把字符转换为浮点数
// 布尔值(boolean)
false、0、""、null、undefined、NaN // false,其他的取值均为true
// 字符串(string)
var str1 = 'string';
str1[0] // s,能像数组一样读取单个字符
str1[0] = a // string,但不能修改其中单个字符
str1.length // 6,length获取字符串长度
var num = 123;
num.toString // '123', 转为字符串
'' +123 // '123',转为字符串
// 对象(object)
var obj1 = { // 组合类型,字面量创建
property1 = 123;
'2property' = 'abc'; // 键名不符合标识符时,须加上引号
};
obj1.property1 // 方一,获取属性
obj1['property1'] // 方二,获取属性
delete obj1.property1 // 删除对象属性
运算符
// 算术运算符
x + y // 加法
x - y // 减法
x * y // 乘法
x / y // 除法
x % y // 取余
++x,x++ // 自增
--x,x-- // 自减
// 赋值运算符
x = y
x += y // x = x + y
x -= y // x = x - y
x *= y // x = x * y
x /= y // x= x / y
// 比较运算符
== // 等于
=== // 严格等于
!= // 不等于
!== // 严格不等于
< // 小于
<= // 小于等于
> // 大于
>= // 大于等于
// 布尔运算符
! // 取反
&& // 且
|| // 或
?: // 三元
逻辑控制
// 判断语句
if() {},
if() {} else {},
if() {} else if() {}
// 分支语句
switch(variable) {
case val1:
...
break;
case val2:
...
break;
...
default:
...;
}
// 循环语句
while() {},
do {} while(),
for() {},
for...in
// 错误处理
try {
throw new Error('错误');
} catch(e) {
console.log(e);
}