什么是表达式 & 语句
// 表达式
name
1 + x
getNames()
// 语句
var name = 'yang';
function getNames() {}
var foo = getNames() {};
表达式分为基本的表达式(包括基本关键字),还有左值表达式以及运算符。
- this关键字
- 字面量(null,布尔值字面量,数字字面量,字符串字面量)
- 初始化字面量(数组字面量[],对象字面量{},正则表达式字面量
/ab+c/i)- 函数表达式
- 类表达式
- 分组操作符
()- 模板字面量
..${...}..- 属性访问符
- new
- 元属性:new.target
- super
- 函数调用
- 参数列表(arguments, ...arguments)
- import
标识符的规则
在 JavaScript 中,标识符命名规范和 Java 以及其他许多语言的命名规范相同,主要规范如下:
1. 标识符第一个字符必须是字母、下划线`_`或美元符号`$`,其后的字符可以是字母、数字或下划线、美元符号;
1. 自定义的标识符不能和 JavaScript 中的关键字及保留字同名,但可以包含关键字或保留字。关键字及保留字介绍请参见本节后面的内容介绍;
1. 标识符不能包含空格;
1. 标识符不能包含`+`、`-`、`@`、`#`等特殊字符;
1. 由多个单词组成的复合标识符命名主要有两种方式:
- 一是使用下划线连接各个单词,每个单词全部小写,例如:dept_name。
- 二是使用驼峰式,其中又分大驼峰和小驼峰。大驼峰的格式是每个单词的首字母大写,其余字母小写,例如:DeptName;小驼峰的格式是第一个单词全部小写,第二单词开始的每个单词首字母大写,其余字母小写,例如:deptName。
if else 语句
const a = 10;
if (a > 10) {
console.log(a);
}
// 此处就是一个简单的if else 更多的使用反而是下面这种
if (time < 10) {\
greeting = "Good morning";
} else if (time < 20) {
greeting = "Good day";
} else {
greeting = "Good evening";
}
hile for 语句
// 语法
while (条件) {
要执行的代码块
}
// 使用
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
while (cars[i]) {
text += cars[i] + "<br>";
i++;
}
break continue
continue 声明终止当前循环或标记循环的当前迭代中的语句执行,并在下一次迭代时继续执行循环。
let text = '';
for (let i = 0; i < 10; i++) {
if (i === 3) {
continue;
}
text = text + i;
}
console.log(text);
// expected output: "012456789"
与 break 语句的区别在于, continue 并不会终止循环的迭代,而是:
- 在
while循环中,控制流跳转回条件判断;
- 在
for循环中,控制流跳转到更新语句。
continue 语句可以包含一个可选的标号以控制程序跳转到指定循环的下一次迭代,而非当前循环。此时要求 continue 语句在对应的循环内部。
`break`语句包含一个可选的标签,可允许程序摆脱一个被标记的语句。`break`语句需要内嵌在引用的标签中。被标记的语句可以是任何 [`块`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/block)语句;不一定是循环语句。
break语句不能在function函数体中直接使用,break语句应嵌套在要中断的当前循环、switch或label语句中。
下面的函数里有个 `break` 语句,当 `i` 为 3 时,会中止 [`while`](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/while) 循环,然后返回 3 * `x` 的值。
function testBreak(x) {
var i = 0;
while (i < 6) {
if (i == 3) {
break;
}
i += 1;
}
return i * x;
}
在switch 中使用
const food = "sushi";
switch (food) {
case "sushi":
console.log("Sushi is originally from Japan.");
break;
case "pizza":
console.log("Pizza is originally from Italy.");
break;
default:
console.log("I have never heard of that dish.");
break;
}
label
- 任何不属于保留关键字的 JavaScript 标识符。
语法: 标记语句可以和 break 或 continue 语句一起使用。标记就是在一条语句前面加个可以引用的标识符
在严格模式中,你不能使用 “let” 作为标签名称。它会抛出一个 SyntaxError(因为 let 是一个保留的标识符)。
let str = '';
loop1:
for (let i = 0; i < 5; i++) {
if (i === 1) {
continue loop1;
}
str = str + i;
}
console.log(str);
// expected output: "0234"