JS 的基本语法
1.什么是表达式和语句
JavaScript中的表达式和语句是有区别的.一个表达式会产生一个值,它可以放在任何需要一个值的地方,比如,作为一个函数调用的参数.下面的每行代码都是一个表达式:
1 2 | 5 + b fun( "a" , "b" ) |
语句可以理解成一个行为.循环语句和if语句就是典型的语句.一个程序是由一系列语句组成的.JavaScript中某些需要语句的地方,你可以使用一个表达式来代替.这样的语句称之为表达式语句.但反过来不可以:你不能在一个需要表达式的地方放一个语句.比如,一个if语句不能作为一个函数的参数.
If语句和条件运算符
下面是一个if语句的例子:
var x;
if (x >= 0) {
x = x+1;
} else {
x = x-1;
}
类似if语句功能的表达式叫做条件运算符.上面的语句等价于下面的.
var x = (x >= 0 ? x+1 : x-1);
在等于号=和分号;之间的代码就是条件表达式.两边的小括号不是必需的,但我觉得小括号能让条件表达式更易读.
2.标识符的规则
- 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号(
$
)和下划线(_
)。 - 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字
0-9
。123456789101112//合语法标识符<br> arg0
_tmp
$elem
π
变量A
//不合语法标识符
1a
// 第一个字符不能是数字
23
// 同上
***
// 标识符不能包含星号
a+b
// 标识符不能包含加号
-d
// 标识符不能包含减号或连词线
3.if else 语句
- JavaScript 提供
if
结构和switch
结构,完成条件判断,即只有满足预设的条件,才会执行相应的语句。123456789101112131415161718192021222324252627282930if
(布尔值)
语句;
// 或者
if
(布尔值) 语句;
var
num = 1
if
(num === 1)
console.log(num)
//满足num全等1时会运行紧跟的那句表达式
var
n = 1
var
m = 2
if
(n!==1)
if
(m === 1)
console.log(
'm等于1'
)
else
console.log(m)
//上面的代码不会执行,但是读起来太可怕了,我们换个写法
var
n = 1
var
m = 2
if
(n!==1){
if
(m === 1){
console.log(
'm等于1'
)
}
else
{
console.log(m)
}
}
//现在清晰多了,所以为了制造可读性强的if else一定要配合区块("{}")使用
4.while,for 语句
-
While
语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | while (条件) 语句; // 或者 while (条件) 语句; var i = 0 while (i<5){ console.log(i) i++ } //i<5时才会循环 while ( true ){ console.log( '死循环' ) } //当while后的条件持续为true时,就会进入死循环,无法自己中断,只能靠外部介入。 |
-
for
语句是循环命令的另一种形式,可以指定循环的起点、终点和终止条件。它的格式如下。123456789101112131415161718for
(初始化表达式; 条件; 递增表达式)
语句
// 或者
for
(初始化表达式; 条件; 递增表达式) {
语句
}
for
(
let
i = 0;i<5;i++){
console.log(i,
'--i'
)
}
//i小于5的时候满足条件自增
for
(
let
i = 0;i=0;i++){
console.log(i,
'--i'
)
}
//条件乱写的话也会死循环。
5.break continue
break
语句和continue
语句都具有跳转作用,可以让代码不按既有的顺序执行。
break
语句用于跳出代码块或循环continue
语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环12345678910111213141516171819202122232425262728293031323334353637383940//正常顺序
for
(
let
n = 0 ;n<5;n++){
console.log(n,
'--n'
)
}
0
"--n"
1
"--n"
2
"--n"
3
"--n"
4
"--n"
//使用了break就在满足n为3时跳出了整个循环
for
(
let
n = 0 ;n<5;n++){
console.log(n,
'--n'
)
if
(n===3){
break
}
}
//0"--n"
1
"--n"
2
"--n"
3
"--n"
//使用了continue在满足n为3时跳过了3的那次循环
for
(
let
n = 0 ;n<5;n++){
if
(n===3){
continue
;
}
console.log(n,
'--n'
)
}
//0"--n"
1
"--n"
2
"--n"
4
"--n"
6.label
- JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | label: 语句 //标签通常与break语句和continue语句配合使用,跳出特定的循环。 top: for ( var i = 0; i < 3; i++){ for ( var j = 0; j < 3; j++){ if (i === 1 && j === 1) break top; console.log( 'i=' + i + ', j=' + j); } } // i=0, j=0 // i=0, j=1 // i=0, j=2 // i=1, j=0 //如果不加top的话只会跳出break所处的for循环,加上top的话则会跳到top所处的那一层 foo: { console.log(1); break foo; console.log( '本行不会输出' ); } console.log(2); // 1 // 2 也可以用于跳出普通的代码块 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话