你不知道的JS 中 do{...}提案 js中逗号运算符 (,) delete 运算符

161 阅读1分钟

从你不知道的JS中卷第五章开始记录(之前的以后补吧,再说吧反正)

5.1 语句和表达式

1.do{...}提案

var a,b;
a=if(true){
  b=4+38;
}

上面的代码是无法运行的,因为语法不允许我们获得语句的结果值并将其赋予给另一个变量(至少现在不行),ES7规范有一项"do表达式"提案,

 var a, b;
    a = do {
        if (true) {
          b = 4 + 5;
        }
      };

do{...}表达式执行一个代码块,并且返回其中最后一个语句的结果值,然后赋值给变量a,目的就是将语句当做表达式来处理,从而不需要将语句封装为函数再调用return来处理,减少对eval()的使用.

2.js中逗号运算符 (,)

逗号运算符是二元运算符,它能够先执行运算符左侧的操作数,然后再执行右侧的操作数,最后返回右侧操作数的值。

  var a = 42,b;
  b = (a++, a);  // (,) a++,a 中第二个表达式在a++之后执行,结果为43,并赋值给b
  console.log(b); // 43

3.delete 运算符

delete用来删除对象中的属性和数组中的单元,通常以单独一个语句的形式出现。

var obj = {
      a: 2
    };
console.log(obj.a); // 2
console.log(delete obj.a); // true
console.log(obj); // {}

4.插一个小方法(提取所有元音字母)

function vowels(str) {
      var mathes;
      // 提取所有元音字母
      if (str && (mathes = str.match(/[aeiou]/g))) {
        return mathes
      }
    };
    console.log(vowels('eaoifnsdgv')) // ['e', 'a', 'o', 'i']