JS的基本语法Ⅰ

203 阅读6分钟

什么是表达式和语句

语句和表达式.png

  1. 两者的定义区别:一个表达式会产生一个值,它可以放在任何需要一个值的地方,语句则是由分号分隔的句子或命令。也可以这样理解:语句是可以单独执行的、能够产生实际效果的代码;而表达式则是包含在语句中,根据某种条件计算出一个值或得出某种结果,然后由语句去判断和处理的代码。如果在表达式后面加上一个“;”分隔符,这就被称为“表达式语句”。它表明“只有表达式,而没有其他语法元素的语句”。
    1 + 1          是一个表达式,它的值为2
    console.log    是一个表达式,它的值为函数本身
    
    var a = 0;     是一个赋值语句
    if (a = 0) { a++ }   是一个条件语句
    function fn(){}      是一个声明语句
    console.log("hello");  是一个表达式语句
  • 一般的javascript中的语句分为下面几种:

  (1)声明语句:变量声明和函数声明

  (2)赋值语句

  (3)控制语句:能够对语句执行顺序产生改变,包括条件语句和循环语句,当然还有比较特殊的标签语句。

  (4)表达式语句:这些语句去掉最后分号,都也可当表达式用的。常见的有:对象操作(new、delete)、函数调用(函数执行,必有返回值)等。

  1. 两者的功能区别:表达式经常用作作为一个函数调用的参数,它可以放在任何需要一个值的地方。而语句则是一个行为,循环语句和if语句就是典型的语句,一个程序是由一系列语句组成的。

  2. 是否支持嵌套方式的区别:在javascript中所有表达式都有返回值,表达式均可以嵌套在别的表达式中,但语句不行,语句只能独立出现。

标识符的规则

  1. 标识符由字母、下划线、$ 或数字组成,并且第一个字母必须是“字母、下划线或$”
  2. 标识符不能是系统关键字和保留字(JS本身使用的变量名和将来将会使用的变量名)
  3. 标识符的命名严格区分大小写(驼峰命名法,第一个单词首字母小写后面的单词首字母大写)
  4. 标识符通过先声明再赋值的方式使用,声明一个变量并赋值,成为变量的初始化
  5. 可以使用中文标识符
  6. 标识符尽量简单,并见名知意
    合法的标识符:
    var a = 0;
    var _test = 0;
    var $a = 0;
    var userName = 'zhangsan';
    var 工资 = 0;
    
    挨打没够的标识符:
    var _________ = 0;
    var $A____B$c = 0;
    
    不合法的标识符:
    var 9abc = 0;
    var window = "hi~";
    var my-hobbies = "basketball";

if else 语句

  1. if语句,也就是选择结构,选择结构指的是根据“条件判断”来决定使用哪一段代码。选择结构有3种:单向选择、双向选择以及多向选择,但是无论是哪一种,JavaScript都只会执行其中的一个分支。

单向选择:即if语句,括号内为条件判断,如果结果为true则执行下面大括号的代码,如果结果为false则跳过下面代码。

if (a > 0) {
	alert(a);
}

双向选择,即if..else语句,如果结果为true则执行下面大括号的代码,如果结果为false则执行else里面的代码,三元表达式也属于双向选择。

if (a > 0) {
	alert(a);
} else {
	alert(b);
}

多项选择,即if...else if..else语句,就是在双向选择的基础上增加n个选择分支。

if (a > 0) {
	alert(a);
} else if (a == 0) {
	alert(0);
} else {
	alert(b);
}

if语句的嵌套:在JavaScript中,if语句是可以嵌套使用的。

var a = 10, b = 20;
if (a > 0) {
	if (b > 0) {
		alert(true);
	} else {
		alert(false);
	}
} else {
	if (b < 0) {
		alert(false);
	}
}
  1. switch结构:switch语句会根据“判断值”来判断,然后来选择使用哪一个case。如果每一个case的取值都不符合,那就执行default的语句。
/*switch(判断值)
{
    case 取值1:
        语块1;break;
    case 取值2:
        语块2;break;
    ……
    case 取值n:
        语块n;break;
    default:
        语句块n+1;
}*/

var d = 7;
var week;
switch (d) {
	case 1:
	week = "周一";
	break;
	case 2:
	week = "周二";
	break;
	case 3:
	week = "周三";
	break;
	case 4:
	week = "周四";
	break;
	case 5:
	week = "周五";
	break;
	case 6:
	week = "周六";
	break;
	default:
	week = "周日";
}
console.log("今天是" + week);

注意,如果case代码块后面缺少了break,switch结构会直接执行default代码块的语句

while for 语句

循环结构,指的是根据条件来判断是否重复执行某一段程序。若条件为true,则继续循环;若条件为false,则退出循环。

  1. while循环,指的是在“满足某个条件下”循环反复地执行某些操作的语句。

如果“条件”返回为true,则会执行大括号{}内部的程序。当执行完大括号{}内部的程序后,会再次判断“条件”。如果条件依旧还是true,则会继续重复执行大括号中的程序……循环执行直到条件为false才结束整个循环,然后再接着执行下面的程序

while (条件) {
	执行语句;
}
var a = 0;
var b = 0;
while (a < 100) {
	console.log(b += 1);
	a++;
}
//打印1 - 100的整数

值得注意的是,a++是while循环的退出条件,如果缺少了a++,那么a就永远等于1,就永远小于100,循环就变成了死循环,while循环一定要写退出条件。

  1. do..while循环结构:与while循环不同的是,do..while循环一定会至少执行一次,也就是先执行一次,再判断是否继续执行。
do {
    ……
}while (条件);
  1. for循环
for(初始化表达式; 条件表达式; 循环后操作) {
    ……
}
for (var i = 0; i < 100; i++) {
	console.log(i);
}
//输出0 - 99的整数

在以上for循环中,首先定义一个用于计数的变量i,其中i的初始值为0。然后定义一个判断条件i<100,只要i小于100就会执行for循环中的程序。最后定义一个循环后的表达式i++,也就是说,每次循环之后都会进行一次i++。

break 和 continue

  1. 在循环语句中,当代码执行遇到break时,直接退出循环,break后面的代码(循环内)不会再执行
  2. 当代码执行遇到continue时,退出本次循环,继续执行符合条件的下一次循环

label

    {
        foo: 1;
    }
    这玩意不是对象,它只是一个代码块,值为1(其他也没什么好说的)