1. 基本语法
1.1语句
语句(statement)js是一行一行执行的,每一行就是一个语句。如果要在一行写两个语句要用分号隔开。比如下面就是一行赋值语句:
var a=1+3;
1 + 3叫做表达式(expression),指一个为了得到返回值的计算式。
语句和表达式的区别:
前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。
1.2变量
- 只声明变量不复制,js给一个默认值undefined.
- 可以同时声明多个变量,在一行可以同时声明并赋值。
- 可以多次声明并赋值,第二次的声明会覆盖前面的值。
① 尽量使用var.
② 不用var会有副作用。
变量提升=变量(声明)提升 hoist
console.log(a)
var a=1
//等价于
var a
console.log(a)
a=1
- 扫描所有声明。
- 声明提升到第一行,赋值不提升到第一行。
- 一行一行运行代码。
【报错】xx is not defined 提示:XX没被声明过。
1.3标识符
标识符(identifier)是用来识别具体对象的一个名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
第一个字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9。
中文是合法的标识符,可以用作变量名。
保留字:不能作为变量名,有特殊的意义,给以后保留起来的东西。
关键字:已经在用的。
另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。
1.4注释
Javascript提供两种注释:一种是单行注释,用//起头;另一种是多行注释,放在/* 和 */之间。
1.5区块
JavaScript使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。区块不构成单独的作用域(scope)。
2.条件语句
2.1 if 结构
if(expression/*表达式*/){
statement;//语句
}
为防止出现错误,if后面最好跟大括号(区块)。
2.2 if…else结构
if(expression/*表达式*/){
//...
}else{
// ...
}
/* 嵌套*/
if(expression){
}else if (expression){
}else if(expression){
}else{
}
2.3 switch结构
switch(expression){
case value1:
...
break;
case value2:
...
break;
default:
...
}
3 三元运算符(问号冒号表达式)
expression ? true = false
var a=true/false
var b=a ? 1:2
console.log(b) // 1/2
4 循环语句
4.1 while循环
while ( expression ) {
statement
}
4.2 for循环
for ( initialize ; // 初始化语句
test ; // 测试表达式
increment // 递增表达式
)
{
statement
}
** for语句的三个部分(initialize,test,increment ),可以省略任何一个,也可以全部省略。如果忽略三个部分,会导致一个无限循环。**
4.3 do…while循环
do {
statement
} while( expression ) ; //分号必须有
4.4 break语句和continue语句
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。
①break语句直接跳出循环。
②continue语句跳过。
如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环。