静态类型的优势 提早发现代码中的Bug function greet(obj){ obj.sayHello(); } var o = { name: "张学友" } greet(o); 提高代码的可读性 // 如果能指定a和b的类型 // 指定为数字,这个函数的功能就非常明确了 // a: number // b: number // 返回值: number function sum(a, b){ return a + b; } 减少了复杂的错误处理逻辑 /*** * * 这个函数接收一个数字数组作为参数 * 返回这个数组中所有数字的和 * * * */ // function sum(arr){ // let result = 0; // arr.forEach(v => { // result += v; // }) // return result; // } function sum(arr){ // 首先判断用户是否有传递参数进来 if(!arr){ throw new Error("函数需要传参"); } if(!Array.isArray(arr)){ throw new Error("函数需要一个数组作为参数"); } if(!arr.every(v => typof v == 'number')){ throw new Error("函数需要的数组为数字数组!") } let result = 0; arr.forEach(v => { result += v; }) return result; } sum([1, 2, 3]); sum(100) sum(['a', 'b']) sum() 便于代码重构 function test(num){ console.log(num) } test({name: "郭富城"}) test({name: "郭富城"}) test({name: "郭富城"}) test({name: "郭富城"}) 增强IDE的功能 IDE: 集成开发环境