javascript的基本语法
1. 语句
JavaScript程序的执行单位是行,也就是一行一行的执行,一般情况下每一行就是一个语句
语句和表达式的区别: 语句是为了进行某种操作,不需要返回值;而表达式则是为了得到返回值,一定会返回一个值。
2. 变量
变量就是给值取名字,变量的名字就是变量名
2.1 如果只声明了变量而没有赋值,则该变量的值是undefined(表示无定义)
var a; console.log(a); // undefined
2.2 如果变量未声明,直接使用,则会报错
2.3 可以在同一条var中声明多个变量
2.4 JavaScript是一种动态类型语言,也就是说,变量的类型没有限制,变量随时可以更改类型
变量提升: 因为JavaScript引擎的工作方式是解析代码的时候会先获取所有被声明的变量然后再一行一行执行
所以会造成一个问题,就是把所有变量的声明部分提升到了代码的头部,这就是变量提升(hosting)
例如:
console.log(a); var a = 1;
其实是
var a; console.log(a); a = 1;
所以结果显示undefined
注意点: JavaScript的变量名是区分大小写的
3. 标志符
第一个字符可以使任意字母,$和_
第二个字符以及后面的字符除了字母,$和_ 还可以是数字
4. 注释
单行注释 //
多行注释 /* */
5. 区块
一个大括号就是一个区块
注意点:对于var命令来说,JavaScript的区块不构成单独的作用域
例如 { var a = 1; } 变量a也可以在区块外面访问
6. 条件语句
6.1 if语句
if (布尔值) { 语句; }
if (布尔值) { 满足条件时; } else { 不满足条件时; }
if (布尔值1) { 满足布尔值1时; } else if (布尔值2) { 满足布尔值2时; } else { 不满足条件时; }
6.2 switch语句
switch (值) {
case '':
// ...
break;
case '':
// ...
break;
default:
// ...
}
注意点: switch语句后面的表达式,与case语句后面的表达式比较运算结果时,采用的是严格相等运算符===
而不是相等运算符==,这意味着比较时不会发生类型转换。
6.3 三元运算符
(条件) ? 表达式1 : 表达式2
7. 循环
7.1 while循环
while(条件) {
// 语句
}
只要条件表达式成立,while会一直循环下去
7.2 for循环
for (初始化表达式; 条件; 递增表达式) {
语句
}
for语句后面的括号里面,有三个表达式:
初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。
条件表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为真,才继续进行循环。
递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量。
7.3 do...while循环
do...while循环与while循环蕾丝,唯一的区别就是先运行一次循环体,然后再判断循环条件
do {
语句
} while (条件);
7.4 break语句用于跳出代码块或者循环
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一次循环
7.5 标签(label)
通常情况下break和continue都是跳出内层循环,label用于跳出外层循环
// break
foo: for (let i = 0; i < 4; i++) {
for (let j = 0; j < 3; j++) {
console.log('i' + i + '---j' + j);
if(i==2 && j==1){break foo;}
}
}
// continue
foo: for (let i = 0; i < 4; i++) {
for (let j = 0; j < 3; j++) {
console.log('i' + i + '---j' + j);
if(i==2 && j==1){continue foo;}
}
}