JavaScript(四)——具体对象(Math、字符串对象、Date对象、Number对象及Boolean对象)

1.字符串对象

包装对象:目的是为了让原始类型的数据像引用类型数据,具有属性和方法,一共有三种包装对象,String、Number、Boolean

  • new String() 将数据转为字符串,返回对象
  • String() 将数据转为字符串,返回字符串
var str1 = '1'; //字面量
var str2 = new String(1); //构造函数
var str3 = String(1);//'1'

(1)转义字符 \

’ 将特殊意义的引号转义为普通引号
\n 将普通的字符n转义为换行符
\t 将普通的字符t转义为制表符(tab键效果)

var str = 'It\'s a dog';    //It's a dog a
var str2 = 'a\nd';  //  \n 换行
var str3 = 'a\tb';  //  \t 制表符  tab键
//练习:打印出 'C:\users\web'
console.log('C:\\users\\web');
//C:/users/web

(2)API

  • length 获取字符串的长度
var str = 'erya正在玩dangang';
console.log( str.length );//14
  • charAt(下标) 获取下标对应的字符,也可以使用数组形式 字符串[下标]
console.log( str.charAt(0),str[0] );//e e
  • indexOf() 查看是否含有某个字符串,返回第一次出现的下标,找不到返回-1
  • lastIndexOf() 查看是否含有某个字符串,返回最后一次出现的下标,找不到返回-1
var str = 'javascript';
//找第1个
console.log( str.indexOf('a') );//1
//找最后1个
console.log( str.lastIndexOf('a') );//3
  • toUpperCase() 英文字母转大写
  • toLowerCase() 英文字母转小写
var str = 'JavaScript';
//转大写
console.log( str.toUpperCase() );//JAVASCRIPT
//转小写
console.log( str.toLowerCase() );//javascript
  • slice(start, end) 截取字符串,start开始的下标,end结束的下标,不包含end,如果end为空会截取到最后,如果是负数表示倒数,返回截取到的字符串
练习:声明变量保存邮箱,分别截取出邮箱的用户名和域名

var email = 'tao123@tedu.cn';
//查找@的下标
var index = email.indexOf('@');
//console.log(index);
var userName = email.slice(0,index);
var domain = email.slice(index+1);
console.log(userName,domain);
  • substr(start, count) 按照长度截取字符串,start开始的下标,count截取的长度,如果count为空截取到最后,如果下标是负数表示倒数,返回截取到的字符串
//练习:声明变量保存一个人的身份证号码,分别截取生日中的年月日和性别,   
//最后打印出以下格式:xxxx年xx月xx日  性别x
var id = '110235197307151870';
var year = id.substr(6,4);
var month = id.substr(10,2);
var date = id.substr(12,2);
var sex = id.substr(-2,1);
//判断性别 
var s = sex%2 ? '男' : '女';
console.log(year + '年' + month + '月' + date + '日 性别' + s);
  • split( 字符 ) 将字符串按照指定的字符分割为数组
//练习:截取文件名称的后缀名
var str = 'web.2104.tao.jpg';
var arr = str.split('.');
//最后一个元素
console.log(arr[arr.length - 1]);
  • join 将数组转为字符串,可以设置字符串之间的分割符
var a = [1,2,3,4,5];
var s = a.join("==");	//指定分隔符
console.log(s);//1==2==3==4==5

2.Math对象

不需要new来创建对象,可以直接使用对象下的api

  • 获取圆周率
console.log( Math.PI );//3.141592653589793
  • 绝对值 absolute
console.log( Math.abs(18-20) );//2
  • ceil 向上取整
console.log( Math.ceil(3.14) );//4
  • floor 向下取值
console.log( Math.floor(3.14) );//3
  • round 四舍五入
console.log( Math.round(5.49) );//5
  • 取随机 >=0 <1
console.log( Math.random() );

获取随机下标 0 ~ 9:

var arr = ['a','aa','aaa','b','bb','bbb','c','cc','ccc'];

//0~1  * 10   0 ~ 9.X  向下取整  0 ~ 9  
var n = Math.floor(Math.random() * 10);
console.log( n, arr[n] );
  • pow(x, y) 计算x的y次方
console.log( Math.pow(5,3) );//次方,125
  • max() 获取一组数字的最大值
  • min() 获取一组数字的最小值
console.log( Math.max(23,9,45,78,6) );//78
console.log( Math.min(23,9,45,78,6) );//6

3.Date对象

用于对日期时间的存储和计算

(1)创建

  • new Date(‘2021/5/18 10:27:30’)
  • new Date(2021,4,18,10,27,30) 月份0~11 对应1月~12月
  • new Date() 存储当前操作系统的时间
  • new Date(1608336000000) 存储的是距离计算机元年的毫秒数,会产生一个具体的日期时间

计算机元年:0时区1970-1-1 0:0:0

(2)获取存储的日期时间

  • getFullYear/getMonth/getDate 获取的月份0~11 对应1~12月
  • getHours/getMinutes/getSeconds/getMilliseconds毫秒
  • getDay 获取星期 0~6 对应星期日~星期六
  • getTime 获取距离计算机元年的毫秒数
//练习:创建Date对象,保存当前操作系统的时间,获取日期时间,
//打印以下格式     今天是xxxx年xx月xx日 xx时xx分xx秒  星期二

var d = new Date();	//获取当前操作系统的时间
var year = d.getFullYear();
var month = d.getMonth() + 1;
var date = d.getDate();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();
var day = d.getDay();//0~6
//用获取的星期的值作为下标就可以找对应的汉字状态
var arr = ['日','一','二','三','四','五','六'];
//console.log( arr[day] );
//如果月份小于10,则在前拼接0
if (month < 10) {
  month = '0' + month;
}
//一般最后都是变量拼接
console.log('今天是'+year+'年'+month+'月'+date+'日 '+
            hour+'时'+minute+'分'+second+'秒 星期'+arr[day]);

(3)转为本地字符串格式

存在兼容性问题,常用于调试

  • toLocaleString() 日期+时间
  • toLocaleDateString() 日期
  • toLocaleTimeString() 时间

(4)设置日期时间

修改Date对象中存储的日期时间

  • setFullYear/setMonth/setDate
    月份1~12 对应的值 0~11
  • setHours/setMinutes/setSeconds/setMilliseconds
  • setTime 设置距离计算机元年的毫秒数,产生一个具体的日期

(5)拷贝Date对象

var d1 = new Date();
var d2 = new Date(d1); //拷贝d1对象

示例:拷贝+设置日期时间

//练习:创建Date对象,保存'2021/5/20',作为入职时间;
//拷贝入职时间的对象作为到期时间,设置合同期为3年(3年后);分别打印两个对象的本地字符串格式。
//拷贝到期时间对象作为续签时间,提前一个月进行续签,如果是周末提前到周五,打印续签时间的本地字符串格式
//入职时间
var d1 = new Date('2021/5/20');
//到期时间
var d2 = new Date(d1);
//设置合同期为3年
d2.setFullYear( d2.getFullYear()+3 );
//拷贝到期时间对象,作为续签时间对象
var d3 = new Date(d2);
//提前一个月
d3.setMonth( d3.getMonth()-1 );
//判断是否为周末
var day = d3.getDay();
console.log(day);
if(day === 6){ //周六
  //提前一天
  d3.setDate( d3.getDate()-1 )
}else if(day === 0){
  //提前两天
  d3.setDate( d3.getDate()-2 );
}
console.log('入职时间:' + d1.toLocaleDateString());
console.log('到期时间:' + d2.toLocaleDateString());
console.log('续签时间:' + d3.toLocaleDateString());

4.Number对象

  • new Number() 将数据转为数值,返回对象
  • Number() 将数据转为数值,返回数值
var n1 = 1;//字面量
var n2 = new Number(true);  //构造函数
var n3 = Number(true);      //普通函数

console.log(n2, typeof n2); //[Number: 1] object    
console.log(n1 + 2, n2 + 2);//3 3
console.log(n3);            //1
  • toFixed(n) 保留小数点后n位
var n = 2 * 3.14 * 5;
//保留小数点后n位
console.log( n.toFixed(1) );//31.4

var total = 6988*2 + 5199*3;
//给整数保留小数点后n位
console.log( total.toFixed(2) );//29573.00
  • toString(n) 将数值转为字符串,可以设置显示的进制
var num = 10;
//转为字符串,可以设置显示的进制
console.log( num.toString(16) );

5.Boolean对象

  • new Boolean() 将数据转为布尔型,返回对象
  • Boolean() 将数据转为布尔型,返回布尔型
var b1 = true;//字面量
var b2 = new Boolean(1);//构造函数
var b3 = Boolean(1);
console.log(b2, typeof b2); //[Boolean: true] object
console.log(b3);    //true
  • !! 隐式转换为布尔型
console.log( !!null ); //false
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你脸上有BUG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值