~本特利~ |
学习笔记
-
- 1.内置对象
-
- 1.1 String对象
- 1.2 Number对象
- 1.3 Math对象
- 1.4 Date对象
- 【案例】制作年历
1.内置对象 1.1 String对象
String对象提供了一些用于对字符串进行处理的属性和方法。
- 回顾字符型数据的创建:利用一对单引号或双引号。
- 字符型数据为什么能像对象一样使用呢?
这是因为这些对象实际上是构造函数String的实例,即String对象。
文章图片
注意:对字符串进行操作时,处理结果是通过方法的返回值直接返回的,并不会改变String对象本身保存的字符串内容。在这些方法的参数中,位置是一个索引值,从0开始计算,第一个字符的索引值是0,最后一个字符的索引值是字符串的长度减1。
>
var str = 'HelloWorld';
str.length;
// 获取字符串长度,返回结果:10
str.charAt(5);
// 获取索引位置为5的字符,返回结果:W
str.indexOf('o');
// 获取“o”在字符串中首次出现的位置,返回结果:4
str.lastIndexOf('o');
// 获取“o”在字符串中最后出现的位置,返回结果:6
str.substring(5);
// 截取从位置5开始到最后的内容,返回结果:World
str.substring(5, 7);
// 截取从位置5开始到位置7范围内的内容,返回结果:Wo
str.substr(5);
// 截取从位置5开始到最后的内容,返回结果:World
str.substr(5, 2);
// 截取从位置5开始的后面2个字符,返回结果:Wo
str.toLowerCase();
// 将字符串转换为小写,返回结果:helloworld
str.toUpperCase();
// 将字符串转换为大写,返回结果:HELLOWORLD
str.split('l');
// 使用“l”切割字符串,返回结果:["He", "", "oWor", "d"]
str.split('l', 3);
// 限制最多切割3次,返回结果:["He", "", "oWor"]
str.replace('World', 'JavaScript');
// 替换字符串,返回结果:"HelloJavaScript"
在实际开发中,许多功能的实现都离不开String对象提供的属性和方法。例如,在开发用户注册和登录功能时,要求用户名长度在3~10范围内,不允许出现敏感词admin,实现代码如下。
>
var name = 'Administrator';
if (name.length < 3 || name.length > 10) {
alert('用户名长度必须在3~10之间。');
}
if (name.toLowerCase().indexOf('admin') !== -1) {
alert('用户名中不能包含敏感词:admin。');
}
上述代码通过判断length 属性来验证用户名长度; 通过将用户名转换为小写后查找里面是否包含敏感词admin。实现时name先转换为小写后再进行查找,可以使用户名无论使用哪种大小写组合,都能检查出来。indexOf()方法在查找失败时会返回-1,因此判断该方法的返回值即可知道用户名中是否包含敏感词。1.2 Number对象
Number对象用于处理整数、浮点数等数值,常用的属性和方法如下。
文章图片
>
var num = 12345.6789;
num.toFixed();
// 四舍五入,不包括小数部分,返回结果:12346
num.toFixed(1);
// 四舍五入,保留1位小数,返回结果:12345.7
num.toFixed(6);
// 用0填充不足的小数位,返回结果:12345.678900
Number.MAX_VALUE;
// 获取最大值,返回结果:1.7976931348623157e+308
Number.MIN_VALUE;
// 获取最小正值,返回结果:5e-324
在上述示例中,MAX_VALUE 和 MIN_VALUE是直接通过构造函数Number进行访问的,而不是使用Number 的实例对象进行访问,这是因为这两个属性是 Number的静态成员。关于静态成员的概念和定义方式具体后面的小节中详解。1.3 Math对象
Math对象用于对数值进行数学运算,与其他对象不同的是,该对象不是一个构造函数,不需要实例化就能使用。
文章图片
>
var num = 10.88;
Math.ceil(num);
// 向上取整,返回结果:11
Math.round(num);
// 四舍五入,返回结果:11
Math.random();
// 获取随机数,返回结果:0.3938305016297685(每次结果不同)
Math.abs(-25);
// 获取绝对值,返回结果:25
Math.abs('-25');
// 获取绝对值,返回结果:25
Math.max(5, 7, 9, 8);
// 获取最大值,返回结果:9
Math.min(6, 2, 5, 3);
// 获取最小值,返回结果:2
利用Math.random()还可以获取指定范围内的随机数,公式为Math.random() * (n - m) + m,表示生成大于或等于m且小于n的随机值,示例代码如下。
>
Math.random() * (3 - 1) + 1;
//1 <= 返回结果 < 3
Math.random() * (20 - 10) + 10;
// 20 <= 返回结果 < 20
Math.random() * (99 - 88) + 88;
// 88 <= 返回结果 < 99
上述代码的返回结果是浮点数,当需要获取整数结果时,,可以搭配Math.floor()来实现。下面通过代码演示如何获取13范围内的随机整数,返回结果可能是12或3.
>
function randomNum(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
}
console.log(randomNum(1, 3));
// 最小值1,最大值3
1.4 Date对象
Date对象用于处理日期和时间。
文章图片
文章图片
示例1:根据Date对象获取时间日期。
>
var date = new Date();
// 基于当前时间创建Date对象
date.toString();
// 示例结果:Fri Oct 06 2017 11:53:04 GMT+0800 (中国标准时间)
date.getFullYear();
// 示例结果:2017
date.getMonth();
// 示例结果:9
date.getDate();
// 示例结果:6
示例2:根据Date对象指定一个日期。
在上述代码中,toString()方法用来方便地查看对象保存的时间信息。
在使用Date对象时,还可以在创建的时候传入参数来指定一个日期,具体示例如下。
>
// 方式1:分别传入年、月、日、时、分、秒(月的范围是0~11,即真实月份-1)
var date1 = new Date(2017, 9, 1, 11, 53, 4);
date1.toString();
// 返回结果:Sun Oct 01 2017 11:53:04 GMT+0800 (中国标准时间)
// 方式2:通过字符串传入日期和时间
var date2 = new Date('2017-10-01 11:53:04');
date2.toString();
// 返回结果:Sun Oct 01 2017 11:53:04 GMT+0800 (中国标准时间)
示例3:处理设置的日期不合理的情况,如将月份设为-1表示去年12月,月份为12
表示明年1月。
在使用方式1时,最少需要指定年、月两个参数,后面的参数在省略时会自动使用默认值; 使用方式2时,最少需要指定年份。另外,当传入的数值大于合理范围时,会自动转换成相邻数值(如方式1将月份设为-1表示去年12月,月份为12表示明年1月)。下面通过具体代码进行演示。
>
new Date('2017');
// Sun Jan 01 2017 08:00:00 GMT+0800 (中国标准时间)
new Date(2017, 9);
// Sun Oct 01 2017 00:00:00 GMT+0800 (中国标准时间)
new Date(2017, -1);
// Thu Dec 01 2016 00:00:00 GMT+0800 (中国标准时间)
new Date(2017, 12);
// Mon Jan 01 2018 00:00:00 GMT+0800 (中国标准时间)
new Date(2017, 0, 0);
// Sat Dec 31 2016 00:00:00 GMT+0800 (中国标准时间)
【案例】制作年历 【javascript|JavaScript内置对象-String对象/Number对象/Math对象/Date对象/案例-制作年历-(案例结合版)】JavaScript内置对象案例-制作年历
推荐阅读
- JavaScript|JavaScript内置对象及案例
- JS知识|JavaScript内置对象(二)(String字符串)
- 总结|JavaScript内置对象总结
- JavaScript基础|JavaScript内置对象Math详解
- JavaScript|内置对象(String、Date、Math对象)
- 硬泡|javascript 内置对象Math总结及其案例
- uniapp|uniapp和小程序如何分包,详细步骤手把手(图解)
- vue|Vue | 原生audio样式不好看,自己写一个简易的音乐播放控件,实现播放暂停可拖动
- javascript|自己用js做一个搜索栏,超级简单