函数:
1、函数是一组一起执行一个任务的语句
2、我们可以把一段可复用的代码放到一起组成函数,从而提高效率
3、函数声明(通过关键字 function 来声明)告诉编译器函数的名称、返回类型和参数
4、函数定义提供了函数的实际主体,在这里函数体由花括号括起来
5、函数有可选参数、默认参数和剩余参数等,可选参数由 "?" 号标识,默认参数则是提供默认值,
在不知道有几个参数的时候我们使用剩余参数,前面由 "..." 标识
function setNum(num?: number) { let theNum = 10; // num 为可选参数 if (num) theNum = num; return theNum; } function greet(firstName: string, lastName: string = "Yam") { // lastName 为默认参数 return "Hello " + firstName + " " + lastName; } // 剩余参数 sumArr function add(...sumArr: number[]) { let sum: number = 0; for (let i = 0; i < sumArr.length; ++i) sum += sumArr[i]; return sum; } let getNum: number = setNum(12); let hello = greet("Lemon"); let getSum = add(1, 2, 3); let str: string = `${getNum} ${hello} ${getSum}`; // 弹出 12 // HelloHello Lemon Yam // 12 alert(str);
注:参数不能同时设为可选的和默认的
6、匿名函数是一个没有函数名的函数,我们可以赋值给一个变量,从而形成函数表达式
let func = function([args]) {...}
7、函数通过在函数后使用 "()" 实现自调用
// 赋值给 sayHello 后自调用 let sayHello = function () { alert("Hello World"); }()
8、Lambda 函数也称箭头函数
// 格式为 ([param1, param2, ..., paramn]) => statement; let greet = (name: string) => {alert(`Hello ${name}`);}
9、函数重载:方法名字相同而参数不同,返回类型1可以相同也可以不同
function disp(str: string) { console.log(str); } function disp(num: number) { console.log(num); } disp("Lemon"); disp(12);
Number:
1、对象属性:
a、MAX_VALUE:可表示的最大的数
b、MIN_VALUE:可表示的最小的数
c、NaN:非数字值
d、POSITIVE_INFINITY:正无穷大,溢出时返回该值,且该值大于 MAX_VALUE
e、NEGATIVE_INFINITY:负无穷大,溢出时返回该值,且该值小于 MIN_VALUE
f、prototype:Number 对象的静态属性,可通过它来向对象添加属性和方法
g、constructor:返回对创建此对象的 Number 函数引用
console.log("最大值" + Number.MAX_VALUE); // 最大值1.7976931348623157e+308 console.log("最小值" + Number.MIN_VALUE); // 最小值5e-324 console.log("非数字值" + Number.NaN); // 非数字值NaN console.log("正无穷大" + Number.POSITIVE_INFINITY); // 正无穷大Infinity console.log("负无穷大" + Number.NEGATIVE_INFINITY); // 负无穷大-Infinity function Person(id: number, name: string) { this.id = id; this.name = name; } let student = new Person(11, "Lemon"); Person.prototype.habbit = "basketball"; console.log("学号:" + student.id); // 学号:11 console.log("名字:" + student.name); // 名字:Lemon console.log("爱好:" + student.habbit); // 爱好:basketball console.log("函数名字:" + student.constructor.name); // 函数名字:Person
2、对象方法:
a、toExponential():把对象的值转换为指数计数法
b、toFixed():把数字转换为字符串,并对小数点指定位数
c、toLocaleString():把数字转换为字符串,使用本地数字格式顺序
d、toPrecision():把数字格式化为指定的长度
e、toString():把数字转换为字符串,使用指定的基数(2~36 之间,默认为 10)
f、valueOf():返回一个 Number 对象的原始数字值
let num: number = 12.345; // 12.345 的指数形式为:1.2345e+1 console.log("12.345 的指数形式为:" + num.toExponential()); // 12.345 保留小数点后 2 位后的字符串为:12.35 console.log("12.345 保留小数点后 2 位后的字符串为:" + num.toFixed(2)); // 转换成本地字符串12.345 console.log("转换成本地字符串" + num.toLocaleString()); // 指定长度为3后为:12.3 console.log("指定长度为3后为:" + num.toPrecision(3)); num = 16; // 16 转换成 8 进制后的字符串为:20 console.log("16 转换成 8 进制后的字符串为:" + num.toString(8)); // 原始数字值16 console.log("原始数字值" + num.valueOf());