Javascript基本语法

134 阅读5分钟

什么是表达式和语句

表达式

表达式是一组代码的集合,它返回一个值。

JavaScript有以下表达式类型:

  • 算数: 得出一个数字, 例如 3.14159.
1+1 //会得到一个值2
  • 字符串: 得出一个字符串, 例如, "Fred" 或 "234".
console.log("my " + "string")  //会得到一个"my string"
  • 逻辑值: 得出true或者false.
1 === 2  //会得到一个false的bool值
  • 基本表达式: javascript中基本的关键字和一般表达式。
  • 左值表达式: 分配给左值。

标识符的规则

  1. 第一个字符,可以是unicode字母或$或_或中文;
  2. 后面的字符,除了上面的所说,还可以有数字;
  3. 变量名也是标识符;

语句

笼统来说,一个语句表示执行了一个动作。

var a = 1

一些基本语句

在介绍基本语句前先介绍一个语句“block”块语句:用于组合零个或多个语句。该块由一对大括号界定来;(如下例子)

{
    let a = 1
    let b = 2
}

if else 语句

当指定条件为真,if 语句会执行一段语句。如果条件为假,则执行另一段语句。 语法

if (condition){
   statement1
}else{
   statement2
}

举例

let a = 1
if (a === 2){
    console.log('a等于2')
}else{
    console.log('a等于1')
}   //输出值是“a等于1”

注意:一般我们会见到else if的从句结构其结构还是if else的结构不过是在里面在套了一个if else,省略了'{}'。比如:

if (condition1)
   statement1
else if (condition2)
   statement2
   else
    if (condition3)

等价于

if (condition1){
   statement1
}else{
  if (condition2)
    statement2
  } else{
    if (condition3)
    }

不要将原始布尔值的true和false与Boolean对象的真或假混淆。任何一个值,只要它不是'falsy 值 (虚值)'即 undefined、null、 0、NaN或空字符串(""),那么无论是任何对象,即使是值为假的Boolean对象,在条件语句中都为真。


switch语句

评估一个表达式,将表达式的值与case子句匹配,并执行与该情况相关联的语句。

语法:

switch (expression) {
  case value1:
    // 当 expression 的结果与 value1 匹配时,执行此处语句
     break;
  case value2:
    // 当 expression 的结果与 value2 匹配时,执行此处语句
     break;
  ...
  case valueN:
    // 当 expression 的结果与 valueN 匹配时,执行此处语句
     break;
  default:
    // 如果 expression 与上面的 value 值都不匹配,执行此处语句
     break;
}

break的重要

var foo = 0;
switch (foo) {
  case -1:
    console.log('negative 1');
    break;
  case 0: // foo 的值为 0 所以匹配这里所以这一块会运行
    console.log(0);
    // 注意:那个没写的 break 原本在这儿
  case 1: // 'case 0:' 里没有 break 语句所以这个 case 也会运行
    console.log(1);
    break; // 遇到了 break,所以不会再继续进入 'case 2:' 了
  case 2:
    console.log(2);
    break;
  default:
    console.log('default');
}

你会看到上面这个在'case 0' 和'case 1'之间忘记加了'break',当这个'foo=0'在语句中找到了匹配的就是'case 0'后运行并不会结束还会接着运行下一个直到遇到'break语句'结束; 同样我们可以让N个case连用:

var foo = 1;
var output = 'Output: ';
switch (foo) {
  case 0:
    output += 'So ';
  case 1:
    output += 'What ';
    output += 'I ';
  case 2:
    output += 'Do ';
  default:
    console.log('Please pick a number from 0 to 5!');
}

这个例子的输出就是:Output: So What I Do


while for 语句

可以在某个条件表达式为真的前提下,循环执行指定的一段代码,直到那个表达式不为真时结束循环。

while (condition){
  statement
}
let i = 0
while(i<5){
    console.log('i')
    i = i + 1
}

这个语句的输出结构就是"0,1,2,3,4" 可以列举一个特殊的例子:

let i = 0.1
while (i !== 1){
    console.log('i')
    i = i+0.1
}

这会陷入死循环,因为在进行'i = 1'时我们以为会停止,其实实际上'i !== 1'他就会自己继续进行'i = i +1'一直陷入循环,这里就是应为浮点数的原因,而计算机采用浮点运算的主因就是电脑采用的二进制;这里我们不详细深究,就了解下这个死循环的原因。

for语句

于创建一个循环,它包含了三个可选的表达式,这三个表达式被包围在圆括号之中,使用分号分隔,后跟一个用于在循环中执行的语句(通常是一个块语句)。(我们也可以简单理解为是while的简化版) 语法:

for([initialization]; [condition]; [final-expression]){statement}

判别:

  1. 先执行initialization,在判别condition,如果为假,直接退出循环,执后面的语句;
  2. 如果为真,执行statement。然后执行final-expression 这里我们和while一起举例:
let i = 0.1
while (i !== 1){
    console.log('i')
    i = i+0.1
}
for(i = 0.1, i !== 0.1, i = i+0.1){
    console.log('i')
}

两者都是循环判断,我们常用for循环,简单也好用,经常搭配brek和continue来终止循环;

break与continue

  • continue 声明终止当前循环或标记循环的当前迭代中的语句执行,并在下一次迭代时继续执行循环。
  • break 语句中止当前循环,switch语句或label 语句,并把程序控制流转到紧接着被中止语句后面的语句。

&& 和 || 运算符

  • &&取第一个假值 语法:
expr1 && expr2

若 expr1 可转换为 true,则返回 expr2;否则,返回 expr1。

  • ||取第一个真值 语法:
expr1 || expr2

若 expr1 可转换为 true,则返回 expr1;否则,返回 expr2。

事实并不只是true与false判断真假,还有其他假值比如null等都是会被转换为 false 的,这类值我们叫falsy值;

falsy 值 (虚值) 是在 Boolean 上下文中认定为 false 的值。

  • null;
  • NaN;
  • 0;
  • 空字符串("" or '' or ``);
  • undefined。