JS基本语法

136 阅读5分钟

1. 表达式与语句

表达式

  • 一般来说,表达式都伴随值或返回值的存在。但这并非绝对的
  • 1 + 2表达式的值是 3
  • add(1,2)表达式的值为函数add()的返回值
  • console.log表达式的值为console对象的log函数本身
  • console.log(3)表达式的值是console.log(3)的返回值,但是因为log函数并没有设定返回值,所以JS默认返回undefined
  • 值是值,返回值是返回值两者并不是一个东西。

语句

  • 语句的作用一般具有一定的功能,如:声明,赋值等。但这也并非绝对的
  • var a = 1 这就是一个简单的语句。

2. JS要注意的地方

  1. JS对 大小写是敏感的,object和Object是不一样的
  2. JS中大部分的空格、回车是没有意义的,而且连续的空格、回车会被默认成1个空格。但JS中有一个地方不能加回车,就是函数的return后面,return后面只能在return的同一行写返回的内容,因为return后面的内容并不执行。 3.JS中的 (逗号,)与(分号;):逗号代表该语句还没结束,逗号可以吧多行语句连接成1行语句的效果;而分号在JS中则代表1行语句的结束。

3. 标识符

标识符的规则

  1. 第一个字符可以是Unicode字母(包括但不限于英文字母,拉丁字母等都在这个编码中)/$ / _ /中文
  2. 后面的字符除了上面的内容还可以是数字 注:标识符第一个字符不能是数字!

4. 注释

JS的注释有两种:单行注释和多行注释

// 单行注释 ctrl+/

/* 内容多行注释 */ shift+alt+a

优秀的注释

  • 分享开发过程踩坑的经验
  • 开发过程中遇到的bug
  • 特殊需求而出现的奇怪代码

5. 区块(代码块)block

用花括号{}把代码包在一起的内容叫做区块

{ let a = 1

let b = 2 }

区块常常与if / for / while合用

6. 语句

6.1 if语句

if....else...

语法:if(表达式){语句1}

else{语句2}

if代码块后面跟的else代码块,表示不满足条件时,所要执行的代码。

if (i===1) { // 满足条件时,执行的语句 } else { // 不满足条件时,执行的语句 } 上面代码判断变量i是否等于13,如果等于就执行if代码块,否则执行else代码块。

if表达式中不可以写作i=1 要写为i===1 因为一个=是赋值 用===进行判断。

对同一个变量进行多次判断时,多个if...else语句可以连写在一起。

if (m === 0) { // ... } else if (m === 1) { // ... } else if (m === 2) { // ... } else { // ... } else代码块总是与离自己最近的那个if语句配对。

if语句可以有多种嵌套方式

推荐的2种 if 语句写法

 第一种

if (表达式) {

    语句

} else if (表达式) {

    语句

} else {

    语句

}

第二种(次推荐)

function fn() {

    if (表达式) {

        return 表达式     }

    if (表达式) {

        return 表达式

    }

    return 表达式 }

6.2 switch语句

  switch语句整体分4部分:switch部分,case部分(所有case),执行体部分(所有执行体),break。

switch执行顺序:

  1. 将switch部分中传入的变量和case部分的值进行比对
  2. 不相等则比对下一个case部分,直至匹配到相等的case,或switch语句全部结束。
  3. 相等则进入最近的执行体执行一系列的语句,直到遇到一个break
  4. 遇到break退出switch

switch (fruit) {
case 'banana':
console.log('banana')
break
case 'apple':
console.log('apple')
break
console.log('peach')
break
}

注:brank不可以省略

6.3 三元运算符

JavaScript的三元运算符: (条件)?表达式1 :表达式2 上面代码中,如果 条件 的值为 true,则返回 表达式1的值,否则返回 表达式2的值 例: var even = (n % 2 === 0) ? true : false; 如果 n可以被2整除,则 even等于 true,否则等于 false,和下面的代码等同。

var even; if ( n % === 0) { even = true; } else { even = false; } 这个三元运算符可以看作 if ... else的简写形式。

6.4 while循环

while语句包括一个循环条件和一段代码,只要条件为真,就会不断循环执行代码。一个 while语句的例子:

var i = 0; while(i < 100) { console.log('i 当前为:' + i); i = i+1; } 这一代码将会循环100次,直到i等于100为止。

6.5 for循环

for语句是循环命令的另一种形式,可以指定循环的起点、终点和终止条件。for语句后面的括号里有三个表达式:

初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。 条件表达式(test):每轮循环开始时都执行这个表达式,只有值为真时,才继续循环。 递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量。 例:

var x = 3; for(var i = 0; i < x; i++) { console.log(i); } 所有for循环都可以改写成 while循环。 for语句的三个部分可以省略任何一个,也可以全部省略。

6.6 break和continue语句

break 为退出所有循环,continue 为退出当前一次循环。

注意:嵌套情况下break 只退出离得最近的循环

6.7 标签 label

语句的前面有标签,相当于定位符,用于跳转到程序的任意位置。标签通常与 break 和 continue语句配合使用,跳出特定的循环。

语法

foo: { cosole.log(1); break foo; console.log('本行不会输出'); } console.log(2)

输出结果为1 2

foo,是个标签,表示花括号里的代码块,break foo跳出代码块,直接console.log(2)

通过 label 的这种语法,我们可以做到让多层循环内的最里层循环执行 break label来退出指定层循环。

注意:{foo: 1} 在浏览器中,这就是一个标签,里面的内容为 1。只有 var a = {foo: 1} 时,才是一个对象。