Math:是一个内置对象,它具有数字常数和函数的属性和方法。不是一个函数对象。
Math数学对象不是一个构造函数,所以我们不需要new来调用,而是直接使用里面的属性和方法即可。
Math对象不是构造函数,它具有数学常数和函数的属性和方法。跟数学相关的运算(求绝对值、取整、最大值等)可以使用Math中的成员。
Math.PI | 圆周率 |
---|---|
Math.floor ( ) | 向下取整 |
Math.ceil ( ) | 向上取整 |
Math.round ( ) | 四舍五入,就近取整 |
Math.abs ( ) | 绝对值 |
Math.max ( ) / Math.min ( ) | 求最大值和最小值 |
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对象和Math对象不一样,它是一个构造函数,所以需要实例化后才能使用。
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() |
获得Date总的毫秒数:时间戳
是距离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); //计算当前秒数
创建数组对象的两种方式
有两种方法可以检测:
方法名 | 说明 | 返回值 |
---|---|---|
push(参数1 …) | 末尾添加一个或多个元素,注意修改原数组 | 并返回新的长度 |
pop() | 删除数组最后一个元素,把数组长度减1,无参数。修改原数组 | 返回删除的元素值 |
unshift(参数1 …) | 向数组的开头添加一个或更多元素,注意修改原数组 | 并返回新的长度 |
shift() | 删除数组的第一个元素,数组长度减1,无参数,修改原数组 | 并返回第一个元素的值 |
var arr =[1,2,3];
console.log (arr.push(4,"pink"));
console.log (arr.unshift ("red","purple"));
console.log (arr.pop());
console.log (arr.shift());
翻转数组
数组名.reverse() 颠倒数组中元素的顺序,无参数。 会改变原数组,返回新数组。
数组排序(冒泡排序)
数组名.sort() 对数组的元素进行排序。会改变原数组,返回新数组。
var arr1 = [13 , 4 , 77 , 1 , 7 ];
arr1.sort (function (a , b)) {
return a - b; //升序的顺序排列
return b - a; //降序的顺序排列
}
基本包装类型就是把简单数据类型包装成为复杂数据类型,这样就有了属性和方法。
var str = "andy";
console.log (str.length);
//基本数据类型是没有属性和方法的,而对象才有属性和方法。
//这是因为JS会把基本数据类型包装为复杂数据类型。
//执行过程如下:
//1.生成临时变量,把简单类型包装为复杂数据类型。
var temp = new string ("andy");
//2.赋值给声明的字符变量。
str = temp;
//3.销毁临时变量。
temp = null;
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了。
重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变。
由于字符串的不可变,在大量拼接字符串的时候会有效率问题。
字符串所有的方法,都不会修改字符串本身。(字符串是不可变的)
操作完会返回一个新的字符串。
indexOf(”要查找的字符“,[开始的位置])
返回指定内容在原字符串中的位置,如果找不到就返回-1,开始的位置是index索引号。
lastIndexOf()
从后往前找,只找第一个匹配的。
1.charAt(index)
说明:返回指定位置的字符(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相同,但是不接受负值。
1.替换字符
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 () //转换小写