饥人谷技术博客

JS基本语法

2022-07-03  本文已影响0人  cy_Wey

一、表达式和语句

二、标识符

  1. Unicode 字符
  2. $
  3. 下划线 _ , 最多使用两个下划线
  4. 数字,但是不能作为开头
  5. 中文

用拼音做标识符不如用中文

三、注释

  1. // 单行注释
  2. /* 多行注释 */

不好的注释

好的注释

四、if 语句

1. 语法

if ( 表达式 ) {
    语句 1
} else {
    语句 2
}

2. 注意事项

if ( 表达式 1 ) {
  语句 1
} else if ( 表达式 2 ) {
  语句 2
} else {  
  语句 3
}

3. 三元表达式

最简单的 if else 写法
例如
a === 3 ? b = a : b = 0 等价于

if ( a=== 3) { 
 b = 3 
} else { 
 b = 0 }

4. && 短路逻辑

window.f1 && console.log( 'f1不存在' ) 等价于

if ( window.f1) {
  console.log( 'f1不存在' )
}

a && b && c && d 取第一个假的值,如果都为真,取最后一个值

5. || 短路逻辑

a = a || 100 等价于

if ( a ) {
   a = a
} else {
  a = 100
}

a || b || c || d 取第一个真值

五、while 语句

1. 语法

while ( 表达式 )  {
 语句
}

执行顺序:先判断表达式真假,如果表达式为真时,执行语句,执行完语句后再次判断表达的真假,如果表达式为假,跳出 while 循环。

2. 注意事项

var a = 0.1 
while (a !== 1) {
a = a + 0.1
}

这个是死循环,因为 浮点数不够精确,10 个 0.1 不等于 1, 而是等于 0.9999999

六、for 语句

1. 语法

for ( 语句 1 ; 表达式 2 ; 语句 3 ) {
  循环体
}

执行顺序:开始的时候会执行一次语句 1,再判断表达式 2,如果表达式 2 成立,执行循环体,执行完循环体后,再执行语句 3 (一般为递增表达式或者递减表达式),再判断表达式2,如果表达式不成立,结果 for 循环

2. 注意事项

for (var i = 0 ; i < 5 ; i++) {
  setTimeout(() => {
  console.log (i)
  }, 0)
}

这个循环会打印 5 次 5,而不是0,1,2,3,4,因为 for 语句执行完后,i 立马会变成 5,并执行了 5 次 setTimeout
如果的打印出 0,1,2,3,4,可将 var 改成 let,或者将 setTimeout 放在 for 的外层

3. break 和 continue

break : 跳出当前的循环,如果有多层循环嵌套,会跳出最近的一层循环
continue : 跳过当前步

七、label 语句

label 是标记语句,任何不属于保留关键字的 JavaScript 标识符。
标记语句可以和 breakcontinue 语句一起使用。标记就是在一条语句前面加个可以引用的标识符(identifier)

语法

label :
   statement

statement JavaScript 语句。break 可用于任何标记语句,而 continue 可用于循环标记语句。

示例

for 循环中使用带标记的 continue 语句

var i, j;

    loop1:
    for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
       loop2:
       for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
          if (i === 1 && j === 1) {
             continue loop1;
          }
          console.log('i = ' + i + ', j = ' + j);
       }
    }

// Output is:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
//   "i = 2, j = 0"
//   "i = 2, j = 1"
//   "i = 2, j = 2"
// Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2"

在代码块中使用标记,但只有 break 语句可以使用非循环标记

foo: {
  console.log('face');
  break foo;
  console.log('this will not be executed');
}
console.log('swap');

// this will log:

// "face"
// "swap

资料来源:饥人谷,MDN

上一篇 下一篇

猜你喜欢

热点阅读