JS基本语法

一、表达式和语句

 JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。  语句(statement)是为了完成某种任务而进行的操作,比如下面就是一行赋值语句。

var a = 1+ 3;

1 + 3叫做表达式(expression),指一个为了得到返回值的计算式。 语句和表达式的区别:

  1. 语句主要为了进行某种操作,一般情况下不需要返回值;表达式是为了得到返回值,一定会返回一个值。
  2. 语句以分号结尾,一个分号就表示一个语句结束。多个语句可以写在一行内;
var a = 1 + 3 ; var b = 'abc';

分号前面可以没有任何内容,JavaScript 引擎将其视为空语句。 ;;;即表示三个空语句。 而表达式则不需要分号结尾。一旦在表达式后面添加分号,则 JavaScript 引擎就将表达式视为语句,这样会产生一些没有任何意义的语句。

1 + 3;
'abc';

上面两行语句只是单纯地产生一个值,并没有任何实际的意义。


注意事项

1.大小写敏感。如objectObject是不一样的;
2. 大部分空格和回车没有实际意义。只有 return 后面不能加回车;[/acc]

标识符

命名规则

  1. 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)
  2. 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9

JavaScript 有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。

if else语句

语法

  1. if (表达式){语句} else {语句}
  2. {}在语句只有一句的情况下可以省略,但不建议这样做 推荐写法
if (表达式) {
  语句
} else if (表达式) {
  语句
} else {
  语句
}

次推荐写法

function fn(){
  if (表达式) {
    return 表达式
  }
  if (表达式) {
    return 表达式
  }
  return 表达式
}

问号冒号表达式(三元表达式)

表达式1 ? 表达式2 : 表达式3

短路逻辑

  1. A&&B&&C&&D取第一个假值或D,并不会取true或false;
  2. A||B||C||D取第一个真值或D,并不会取true或false;[/acc]

循环语句

  1. while循环 While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。
while (条件)
  语句;

// 或者
while (条件) 语句;

//或者
while (条件) {
  语句;
}
  1. for循环 for循环是while循环的升级版。
for (初始化表达式; 条件; 递增表达式)
  语句

// 或者

for (初始化表达式; 条件; 递增表达式) {
  语句
}

注意:在语句执行完后才回去执行递增表达式;

break 语句和 continue 语句

break语句用于跳出代码块或循环。
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。 如果存在多重循环,不带参数的break语句和continue语句都只针对最内层循环。

标签(label)

JavaScript 语言允许语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。

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);
    }
  }

// 跳出代码块
foo: {
  console.log(1);
  break foo;
  console.log('本行不会输出');
}
console.log(2);
全部评论

相关推荐

叶扰云倾:进度更新,现在阿里云面完3面了,感觉3面答得还行,基本都答上了,自己熟悉的地方也说的比较细致,但感觉面试官有点心不在焉不知道是不是不想要我了,求阿里收留,我直接秒到岗当阿里孝子,学校那边的房子都退租了,下学期都不回学校,全职猛猛实习半年。这种条件还不诱人吗难道 然后现在约到了字节的一面和淘天的复活赛,外加猿辅导。华为笔试完没动静。 美团那边之前投了个base广州的,把我流程卡麻了,应该是不怎么招人,我直接简历挂了,现在进了一个正常的后端流程,还在筛选,不知道还有没有hc。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务