静态类型的优势
提早发现代码中的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: 集成开发环境