JS基本语法

一、表达式和语句

  • 表达式一般有值,语句可以有值也可能没有值
  • 语句一般会改变环境(声明,赋值)

二、标识符

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

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

三、注释

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

不好的注释

  • 把代码翻译成中文
  • 过时的注释
  • 发泄不满的注释

好的注释

  • 踩坑注释
  • 遇到的 bug,怎么解决的
  • 说明为什么代码写得这么奇怪

四、if 语句

1. 语法

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

2. 注意事项

  • 只有一句语句时花括号 { } 可以省略
  • 语句 1 和 语句 2 里面可以嵌套 if else
  • “=” 表示赋值,“ === ” 表示相等
  • 逗号表示语句没有完成,分号表示语句完成了
  • 永远都要使用最没有歧义的写法
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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • JS的基本语法学习总结 表达式与语句 1 + 2 表达式的值为3 add(1,2)表达式的值为函数的返回值 con...
    Amber886阅读 178评论 0 0
  • 一、JavaScript和ECMAScript的关系 1996年8月,微软模仿JavaScript开发了一种相近的...
    疯狂的蜗牛Dianna阅读 491评论 0 0
  • 1.表达式与语句 JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就...
    LULU98阅读 477评论 0 0
  • 语句和表达式 语句(statement)是为了完成某种任务而进行的操作,JavaScript 程序的执行单位为行(...
    pang猴子阅读 369评论 0 0
  • 1.表达式与语句 表达式:是一组代码的集合,返回一个值 语句:是为了完成某种任务而进行的操作。以分号结尾,一个分号...
    fanison阅读 210评论 0 1