1.语句
语句以分号为结束,一个分号表示一个语句结束
示例:
var a='abc';//有赋值操作的语句
1+3;//无意义的语句
2.变量
变量是对值的引用,使用变量先声明变量名,然后在数值与变量名之间建立关系,变量声明的命令比如var,let等,不写命令也可以声明变量,如果给变量声明但不赋值,变量的值默认是undefined,表示无定义。如果声明变量忘记写var,那么会被系统认为是定义全局变量,所以还是要写上var
示例:
var a=1;
基本等价于
a=1;
如果变量为声明就使用,会报错,提示变量未定义//ReferenceError:is not defined
javascript是一种动态类型语言,变量的类型没有限制,可以赋予各种类型的值
示例:
var a=1;
a='hello';
3.变量提升
所有的变量的声明语句都会被提升到代码头部
示例:
console.log(a);
var a=1;
//等同于
var a;
console.log(a);//undefined
a=1;
注意,变量提升仅var声明的变量有效,如果一个变量不是用var声明,就不会发生变量提升
示例:
console.log(b);//提示“ReferenceError:b is not defined”
b=1;
4.标识符
最常见的标识符是变量名和函数名,js对标识符大小写敏感
命名规则:
第一个字符,可以是任意英文字母,美元符号$,下划线_
第二个字符,除了任意英文字母,美元符号$,下划线_,还可以是数字0-9
示例:
合法字符 arg0 _tmp $elem pai
不合法字符 1ab 23 *** a+b -b
常见的保留字也不能用做标识符比如:class for if...
还有不是保留字,但有特殊意义,比如:NaN undefined Infinity
5.注释
单行注释 //
多行注释 /* */
由于兼容HTML所以 <!-- -->也被视为单行注释
6.区块
JavaScript中使用大括号,将多个语句组合一起,与es6不一样,js的区块不构成作用域,也就是说在js中使用区块的意义不大,一般只有在for,if语句中使用,区块中的变量和区块外的变量属于同一作用域
示例:
{
var a=1;
}
alert(a);//1
7.条件语句
if结构
示例:
if(expression)//括号里是表达式如果为真则执行,如果为假则跳过执行
{
statement;//语句
}
if...else结构
示例:
if(m===3){ //如果m等于3,就执行if代码块,否则就执行else代码块
//then
}else{
//else
}
switch结构
多个if...else连在一起使用时,可以转变为switch结构
switch(fruit){
case "banana":
//...
break;
case "apple":
//...
break;
default;
//...
}
根据变量fruit的值,选择执行相应的case,如果case都不符合,执行最后default部分,break语句不能少,否则会接下去执行下一个case代码块而不是跳出switch结构
三元运算符?:
常常用于逻辑判断,相当于if...else...简写形式
示例:
var even=(n%2===0)?true:false;
//等同于
var even;
if(n%2===0){
even=true;
}else{
even=false;
}
8.循环语句
while循环
while语句包含一个循环条件和一段代码,只要条件为真,就不断循环执行代码块
示例:
while(expression)
statement;
var i=0;
while(i<100){
console.log('i当前为:'+i);
i+=1;
}
for循环
for(initialize;test;increment)
statement
//或者
初始化表达式(initialize):确定循环的初始值,只在循环开始时执行一次
测试表达式(test):检查循环条件,只要为真就进行后续操作
递增表达式(increment):完成后续操作,然后返回上一步,再一次检查循环条件
示例:
var x=3;
for(var i=0;i<x;i++){
console.log(i);
}
//改写成while循环
var x=3;
var i=0;
while(i<x){
console.log(i);
i++;
}
do...while循环
与while循环唯一的区别就是先运行一次循环体,然后判断循环条件
do
statement
while(expression)
//或者
do {
statement
}while(expression);
示例:
var x=3;
var i=0;
do {
console.log(i);
i++;
}while(i<x);
break和continue语句
break语句用于跳出代码块或循环
示例:
var i=0;
while(i<100){
console.log('i当前为:'+i);
i++;
if(i===10)break;
}
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环
var i=0;
while(i<100){
i++;
if(i%2===0)continue;
console.log('i当前为:'+i);
}
标签label
标签相当于定位符,用于跳转到程序的任意位置
label:
statement
示例:
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);
}
}