内置对象
- JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象。
- 前面两种对象是JS基础内容,属于ECMAScript;第三个浏览器对象,属于我们JS独有的。
- 内置对象就是指JS语言自带的一些对象,这些对象供开发使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。
- 内置对象最大的优点就是帮助我们快速开发。
- JavaScript提供了多个内置对象,Math、Date、Array、Srting等。
??Math数学对象不是一个构造函数,所以我们不需要new来调用,而是直接使用里面的属性和方法即可。
1.Math概述 ??Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值、取整、最大值等)可以使用Math中的成员。
Math.PI | 圆周率 |
---|---|
Math.floor ( ) | 向下取整 |
Math.ceil ( ) | 向上取整 |
Math.round ( ) | 四舍五入,就近取整 |
Math.abs ( ) | 绝对值 |
Math.max ( ) / Math.min ( ) | 求最大值和最小值 |
- 绝对值方法:包含了隐式转换,会把字符串型的数字转换为数字型。
- Math对象随机数方法
??random()返回一个随机的小数。??0 <= X < 1 - 这个方法里面不跟参数
- 代码验证
console.log (Math.random());
- 想要得到两个数之间的随机整数,并且包含这两个整数的代码如下:
Math.floor (Math.random() * (max - min + 1)) + min;
应用实例:
function getRandom (min , max) {
return Math.floor (Math.random() * (max - min + 1)) + min;
}
console.log (getRandom ( 1 , 10 ));
日期对象 Date概述 ??Date对象和Math对象不一样,它是一个构造函数,所以需要实例化后才能使用。
??Date实例用来处理日期和时间。
Date()方法的使用 ??1.获取当前时间必须实例化:
var now = new Date ();
console.log (now);
??2.Date()构造函数的参数。
???如果括号里有时间,就返回参数里的时间。
???例如日期格式字符串"2021-6-1",
???可以写成 new Date (“2021-6-1”)
???或者 new Date (“2021/6/1”)
日期格式化
方法名 | 说明 | 代码 |
---|---|---|
getFullYear() | 获取当年 | dObj.getFullYear() |
getMonth() | 获取当月(0-11) | dObj.getMonth() |
getDate() | 获取当天日期 | dObj.getDate() |
getDay() | 获取星期几(周日0到周六6) | dObj.getDay() |
getHours() | 获取当前小时 | dObj.getHours() |
getMinutes() | 获取当前分钟 | dObj.getMinutes() |
getSeconds() | 获取当前秒钟 | dObj.getSeconds() |
??是距离1970年1月1日过了多少的毫秒数
??1.通过valueOf(),getTime()
var date = new Date ();
console.log (date.valueOf());
console.log (date.getTime());
??2.简单的写法(常用!)
var date1 = +new Date();
//+new Date()返回的就是总毫秒数。
时间戳转换为时分秒的公式如下:
d = parselnt (总秒数/60/60/24);
//计算天数
h = parselnt (总秒数/60/60%24);
//计算小时
m = parselnt (总秒数/60%60);
//计算分数
s = parselnt (总秒数%60);
//计算当前秒数
数组对象 数组对象的创建 【总结|JavaScript内置对象总结】??创建数组对象的两种方式
- 字面量方式
- new Array()
- instanceof 运算符,它可以用来检测是否为数组。
- Array.isArray(参数);
方法名 | 说明 | 返回值 |
---|---|---|
push(参数1 …) | 末尾添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
pop() | 删除数组最后一个元素,把数组长度减1,无参数。修改原数组 | 返回删除的元素值 |
unshift(参数1 …) | 向数组的开头添加一个或更多元素,注意修改原数组 | 并返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1,无参数,修改原数组 | 并返回第一个元素的值 |
- push()在数组的末尾添加一个或者多个数组元素
??1.push是可以给数组追加新的元素。
??2.push()参数直接写数组元素就可以了。
??3.push完毕之后,返回的结果是新数组的长度
??4.原数组也会发生变化。
var arr =[1,2,3];
console.log (arr.push(4,"pink"));
- unshift在数组的开头添加一个或者多个数组元素
??1.unshift是可以给数组前面追加新的元素。
??2.unshift()参数直接写数组元素就可以了。
??3.unshift完毕之后,返回的结果是新数组的长度。
??4.原数组也会发生变化。
console.log (arr.unshift ("red","purple"));
- pop() 可以删除数组的最后一个元素
??1.pop是可以删除数组的最后一个元素,一次只能删除一个元素。
??2.pop()没有参数。
??3.pop完毕之后,返回的结果是 删除的那个元素。
??4.原数组也会发生变化。
console.log (arr.pop());
- shift() 可以删除数组的第一个元素
??1.shift是可以删除数组的第一个元素,一次只能删除一个元素。
??2.shift()没有参数。
??3.shift完毕之后,返回的结果是 删除的那个元素。
??4.原数组也会发生变化。
console.log (arr.shift());
数组排序
- 翻转数组
?数组名.reverse() ?颠倒数组中元素的顺序,无参数。 会改变原数组,返回新数组。
- 数组排序(冒泡排序)
?数组名.sort()?对数组的元素进行排序。会改变原数组,返回新数组。
var arr1 = [13 , 4 , 77 , 1 , 7 ];
arr1.sort (function (a , b)) {
return a - b;
//升序的顺序排列
return b - a;
//降序的顺序排列
}
数组索引方法
- indexOf () 数组中查找给定元素的第一个索引?如果存在,则返回索引号,如果不存在,则返回-1。
返回数组元素索引号方法:indexOf(数组元素)
作用就是返回该数组元素的索引号,从前面开始查找,只返回第一个满足条件的索引号。 - lastIndexOf
如果存在,则返回索引号,如果不存在,则返回-1。
返回数组元素索引号方法:lastIndexOf(数组元素)
作用就是返回该数组元素的索引号,从后面开始查找。
- toString () 把数组转换为字符串,逗号分隔每一项。返回一个字符串
- join(“分隔符”) 把数组中的所有元素转换为一个字符串。返回一个字符串。可以自定义分隔符。
var str = "andy";
console.log (str.length);
//基本数据类型是没有属性和方法的,而对象才有属性和方法。
//这是因为JS会把基本数据类型包装为复杂数据类型。
//执行过程如下:
//1.生成临时变量,把简单类型包装为复杂数据类型。var temp = new string ("andy");
//2.赋值给声明的字符变量。str = temp;
//3.销毁临时变量。temp = null;
字符串的不可变 ??指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了。
??重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变。
??由于字符串的不可变,在大量拼接字符串的时候会有效率问题。
根据字符返回位置 ??字符串所有的方法,都不会修改字符串本身。(字符串是不可变的)
??操作完会返回一个新的字符串。
- indexOf(”要查找的字符“,[开始的位置])
返回指定内容在原字符串中的位置,如果找不到就返回-1,开始的位置是index索引号。
- lastIndexOf()
从后往前找,只找第一个匹配的。
?说明:返回指定位置的字符(index 字符串的索引号)
?使用:str.charAt ( 0 )
?遍历字符案例:
var str = "abc";
for (var i = 0;
i < str.length;
i++) {
console.log (str.charAt(i));
}
2.charCodeAt (index)
?说明:获取指定位置外字符的ASCII码(index索引号)
?使用:str.charCodeAt ( 0 )
?目的:判断用户按下了哪个键。
3.str [ index ]
?说明:获取指定位置外字符
?使用:HTML5新增的,IE8+支持和charAt()等效。
字符串的操作方法(重点!!)
- concat(str1,str2,str3…)
说明:concat()方法用于连接两个或多个字符串。拼接字符串,等效与+,+更常用。
- substr(start//截取的起始位置,length//截取几个字符); ?重点
说明:从start位置开始(索引号),length取的个数。
- slice (start,end)
说明:从start位置开始,截取到end位置,end取不到(都是索引号)
- substring(start,end)
说明:从start位置开,截取到end位置,end取不到,基本和slice相同,但是不接受负值。
?replace(”被替换的字符“,”替换为的字符“)?只会替换第一个字符。
var str = "abcabc";
console.log (str.replace ("a","d"));
?如果要把某字符串里的所有某字符换掉可以用while循环,如下:
var str1 = "abcoefoxyozzopp";
while (str1.indexOf("o") !== -1 ) {
str1 = str1.replace ("o","h");
}
2.字符转换为数组
?split(”分隔符“)?join把数组转换为字符串。
var str = "red , pink , blue";
str.split(",");
toUpperCase () ? // 转换大写
to owerCase () ? //转换小写
推荐阅读
- JS知识|JavaScript内置对象(二)(String字符串)
- JavaScript基础|JavaScript内置对象Math详解
- JavaScript|内置对象(String、Date、Math对象)
- 硬泡|javascript 内置对象Math总结及其案例
- uniapp|uniapp和小程序如何分包,详细步骤手把手(图解)
- vue|Vue | 原生audio样式不好看,自己写一个简易的音乐播放控件,实现播放暂停可拖动
- javascript|自己用js做一个搜索栏,超级简单
- 二分法的左右边界
- JS|深拷贝浅拷贝的区别(如何实现一个深拷贝?)