ES6·杂

这里零碎记录一些ES6的内容,和部分以前版本的内容

一、for-of

如何遍历数组中的元素?很久以前是这样的:

for (var index = 0; index < myArray.length; index++) {
    console.log(myArray[index]);
}

ES5之后是这样的:

myArray.forEach(function (value) {
    console.log(value);
});

value为数组值,小缺陷是不能break中断

ES6是这样的:

for (var value of myArray) {
    console.log(value);
}

二、异常处理

ES3开始引入了 try-catch 语句,是 JavaScript 中处理异常的标准方式。
语法:
try{ 
//可能发生异常的代码 
}catch(error){ 
//发生错误执行的代码 
}

也可以追加 finally 整体效果和java异常处理类似,catch后错误类型有如下这些:

Error
EvalError 
RangeError
ReferenceError
SyntaxError
TypeError
URIError

示例如下:

<script>
    try{
        console.log(b);
        console.log("我不会输出的,不要找了")

    }catch(error){
        console.log("发生错误了")
    }finally {
        console.log("不管发生不发生错误,我都会执行")
    }
    console.log("我是try catch后面的代码")
</script>

也可以用 throw 主动抛出错误,并且可以自定义,如下:

<script>
    /*该函数接收一个数字,返回他的平方。*/
    function foo(num) {
        if(typeof num == "number"){
            return num * num;
        }else{
            throw new TypeError("类型错误,你应该传入一个数字...")
        }
    }
    console.log(foo(33))
    console.log(foo("abc"))
</script>

自定义的:

<script>
    function MyError(message) {
        this.message = "注意:这是自定义的错误"
        this.name = "自定义错误";
    }
    MyError.prototype = new Error();
    try {
        throw new MyError("注意:这是自定义错误类型")
    }catch (error){
        console.log(error.message)
    }
</script>

三、箭头函数

例如:

// ES5
var selected = allJobs.filter(function (job) {
    return job.isSelected();
});
// ES6
var selected = allJobs.filter(job => job.isSelected());

语法:标识符(参数)=>表达式。无需输入 function 和 return,小括号、大括号以及分号也可以省略。

如果要接收多重参数,用小括号包裹参数列表,若单行默认return单行结果,若多行代码块,根据需求自行加return语句,如:

// ES5
var total = values.reduce(function (a, b) {
    return a + b;
}, 0);
// ES6
var total = values.reduce((a, b) => a + b, 0);







猜你喜欢

转载自blog.csdn.net/gcc_java/article/details/80981705
ES6