一.Math对象
Math对象也叫数学对象用于算术运算
1.1 Math对象的属性
console.log(`圆周率:${Math.PI}`)
console.log(`算术常量e,自然对数的底数:${Math.E}`)
console.log(`返回2的自然对数:${Math.LN2}`)
console.log(`返回10的自然对数:${Math.LN10}`)
console.log(`返回以2为底的e的对数:${Math.LOG2E}`)
console.log(`返回以10为底的e的对数:${Math.LOG10E}`)
console.log(`返回2的平方根的倒数:${Math.SQRT1_2}`)
console.log(`返回2的平方根:${Math.SQRT2}`)
运行结果:
1.2Math对象的方法
console.log(`绝对值:${Math.abs(-12.3)}`);
console.log(`点的弧度:${Math.atan2(30,40)}`);
console.log(`对数进行上舍入:${Math.ceil(-12.3)}`);
console.log(`对数进行下舍入:${Math.floor(12.3)}`);
console.log(`对数进行四舍五入:${Math.round(-12.6)}`);
console.log(`两个数的最大值:${Math.max(123,234)}`);
console.log(`两个数的最小值:${Math.min(123,234)}`);
console.log(`两个数的最大值:${Math.max(123,234)}`);
console.log(`0-1的随机数:${Math.random()}`);
// 1-3的随机数 Math.random()*(最大值-最小值+1)+最小值
let num=Math.random()*(3-1+1)+1
console.log(parseInt(`${num}`));
console.log(`平方根:${Math.sqrt(9)}`);
运行结果:
二. Number对象
Number对象是原始数值的包装对象
2.1 NUmber对象的属性
console.log('最大的数:'+Number.MAX_VALUE)
console.log('最小的数:'+Number.MIN_VALUE)
console.log('负无穷大:'+Number.NEGATIVE_INFINITY)
console.log('正无穷大:'+Number.POSITIVE_INFINITY)
//NaN 非数字
console.log(parseInt('assd'));
运行结果:
2.2Number对象的方法
//保留N位小数
console.log(1234.567.toFixed(2));
运行结果:
三. Boolean对象
Boolean对象表示两个值: true:真 false:假
四. Date对象
Date对象用于处理日期和时间
Date对象的方法
//日期 当前日期
let now:Date=new Date()
console.log(now);
console.log(`号:${now.getDate()}`);
console.log(`月:${now.getMonth()+1}`);
console.log(`年:${now.getFullYear()}`);
console.log(`年:${now.getUTCFullYear()}`);
console.log(`时:${now.getHours()}`);
console.log(`分:${now.getMinutes()}`);
console.log(`秒:${now.getSeconds()}`);
console.log(`毫秒:${now.getMilliseconds()}`);
console.log(`返回一周的某一天:${now.getDay()}`);
console.log(`返回本地时间与格林威治标准时间的分钟差${now.getTimezoneOffset()}`);
console.log(`根据世界时从Date对象返回月中的一天:${now.getUTCDate()}`);
console.log(`根据世界时从Date对象返回周中的一天:${now.getUTCDay()}`);
console.log(`根据世界时从Date对象返回月份(0~11):${now.getUTCMonth()+1}`);
console.log(`根据世界时从Date对象返回四位数的年份:${now.getUTCFullYear()}`);
console.log(`根据世界时返回Date对象的小时:${now.getUTCHours()}`);
console.log(`根据世界时返回Date对象的分钟:${now.getUTCMinutes()}`);
console.log(`根据世界时返回Date对象的秒钟:${now.getUTCSeconds()}`);
console.log(`根据世界时返回Date对象的毫秒:${now.getUTCMilliseconds()}`);
let a=new Date()
a.setDate(15)
console.log(`设置Date对象中的某一天(1-31):${a}`);
a.setMonth(9)+1
console.log(`设置Date对象中的月份:(0-11):${a}`);
a.setFullYear(2025)
console.log(`设置Date对象中的年份:${a}`);
a.setHours(20)
console.log(`设置Date对象中的小时:${a}`);
a.setMinutes(20)
console.log(`设置Date对象中的分钟:${a}`);
a.setSeconds(5)
console.log(`设置Date对象中的秒钟:${a}`);
a.setMilliseconds(1000)
console.log(`设置Date对象中的毫秒:${a}`);
console.log(`1970年1月1日至今的毫秒数:${now.getTime()}`);
console.log(`把Date对象转换为字符串${now.toString()}`);
console.log(`把Date对象的时间部分转换为字符串${now.toTimeString()}`);
console.log(`把Date对象的日期部分转换为字符串${now.toDateString()}`);
console.log(`根据世界时,把Date对象转换为字符串${now.toUTCString()}`);
console.log(`根据本地时间格式,把Date对象转换为字符串:${now.toLocaleDateString()}`);
//设置毫秒数
now.setTime(now.getTime()+30*24*60*60*1000)
console.log(`${now.getFullYear()}年${now.getMonth()+1}月${now.getDate()}日`);
运行结果:
五. String对象
let str1:string='hello word!'
console.log(`字符长度:${str1.length}`);
console.log(`返回指定位置的字符:${str1.charAt(1)}`);
console.log(`从字符编码创建一个字符串:${String.fromCharCode(97,98,99)}`);
console.log(`返回在指定的位置的字符的Unicode编码:${str1.charCodeAt(1)}`);
console.log(`连接的新字符串:${str1.concat('你好')}`);
console.log(`检索字符串:${str1.indexOf('o')}`);
console.log(`从后往前搜索字符串:${str1.lastIndexOf('o')}`);
let strs:string[]=['张三','李四','王五']
strs.sort((a,b)=>{return a.localeCompare(b)})
console.log(strs);
console.log(`${str1}替换字符:${str1.replace('word','世界')}`);
console.log(`提取字符串:${str1.slice(3)},${str1.slice(3,7)}`);
// 拆分字符串
strs=str1.split(' ')
console.log(strs);
console.log(`从开始的索引提取n个字符${str1.substr(3,6)}`);
console.log(`两个下标之间的字符:${str1.substring(3,7)}`);
console.log(`转大写:${str1.toLocaleUpperCase()}`);
运行结果:
String对象的练习
//有很多邮箱,需要获取每一个邮箱的域名
let emails:string[]=['123@qq.com','asd@sina.cn']
for(let i in emails){
let email:string=emails[i]
let ind:number=email.lastIndexOf('.')//获取.的下标
let ym:string=email.substring(ind+1)
console.log(`${email}的域名:${ym}`);
}
解题思路:我们要获取邮箱域名,就需要通过字符串的查找找到相同的特点(‘.'),然后通过字符串截取得到域名
注意点:查找字符串需要从后往前找,截取字符串需要加1,这样就可以得到域名不加点
运行结果:
//把所有的0替换为o 把O替换成小写o
let pwds:string[]=['12300','1240O','asdOO']
for(let i in pwds){
pwds[i]= pwds[i].replace(/0/g,'o').replace(/O/g,'o')
}
console.log(pwds);
解题思路:通过字符串替换把所有的0和O替换成小写o
运行结果:
//根据身份证号,获取用户出生年月日
let cardNum:string='123456200809091234'
let year:string=cardNum.substring(6,10)
let Month:string=cardNum.substring(10,12)
let day:string=cardNum.substring(12,14)
console.log(`${year}年${Month}月${day}日`);
//根据身份证号,获得用户年龄
let nows:Date=new Date()
let y=nows.getFullYear()
let m=nows.getMonth()+1
let d=nows.getDate()
console.log(`${y}/${m}/${d}`);
let s=y-parseInt(year); //虚岁
if((m>parseInt(Month))||(m==parseInt(Month)&&d<parseInt(day))){
s-- //没有过生日之前
}
console.log(`真实年龄:${s}`);
解题思路:众所周知身份证是由18位数字组成,要获取年月日,身份证的位置是固定的,通过字符串截取来分别找到年月日的位置,就获取到出生年月日了。
2.根据身份证号获得用户年龄,由上可得出生年月,获取当前时间减去身份证的年便得出年龄,这里有两种情况需要注意一下,首先第一种通过年份相减直接得到的年龄并不准确,我们通过月和日来判断是否过了生日,如果没有过生日就需要在减一岁
运行结果: