1-Math
Math对象是一个数学对象,不是一个构造函数。
构造函数实例化对象是使用new的方式!!!
01-Math.PI
取π值
console.log(Math.PI); // 3.1415926...
02-Math.max
取出最大值
console.log(Math.max(1, 100, 20)) // 100
console.log(Math.max(-1, -100)); // -1
有字符串时打印出 -Infinity
console.log(Math.max(1, 100, "你好")) // -Infinity
没有内容时打印出 NaN
console.log(Math.max()) // NaN
03-Math.min
取最小值
console.log(Math.min(10, 20, 1)) //1
以上三个可以用对象表示出来
var mymath = {
PI: 3.1415926,
max : function(){
var max = arguments[0];
for( var i = 1 ; i < arguments.length ; i++ ){
if( arguments[i] > max){
max = arguments[i]
}
}
return max;
},
min : function(){
var min = arguments[0];
for( var i = 1 ; i < arguments.length ; i++ ){
if( arguments[i] < min){
min = arguments[i]
}
}
return min;
}
}
console.log(mymath.max(5,6,8,7,9)) // 9
console.log(mymath.min(5,6,8,7,9)) // 5
04-Math.abs
取绝对值
console.log(Math.abs(1)) // 1
console.log(Math.abs(-1)) // 1
console.log(Math.abs('red')) // NaN
当值为字符串的数字时会隐式转换为数字
console.log(Math.abs("-1")) // 1
05-Math.floor
向下取整数
console.log(Math.floor(2.1)) // 2
06-Math.ceil
向上取整数
console.log(Math.floor(3.1)) // 4
07-Math.ceil
四舍五入
console.log(Math.round(2.6)) // 3
08-Math.random
取随机数
console.log(Math.random()) // 随机值的取值为 0 =< x < 1
console.log(Math.random() * (100 )) // 随机值的取值为 0 =< x < 100
console.log(Math.floor((Math.random() * (100 - 10)) + 10)) / 随机值的取值为 10 =< x < 100
例1:
function sum(min , max){
console.log(Math.ceil( Math.random() * (max - min +1) + min - 1))
}
console.log( sum( 50 , 60))
50-60取随机数
例2:
function sum(min , max){
return Math.floor(Math.random()*(max - min + 1) + min)
}
var num1 = getRandom(1,10)
while(1) {
var num = prompt("请输入您猜想的数字: (1-10之间)")
if(num > randomNum) {
alert("您猜的数字大了")
}else if(num < randomNum) {
alert("您猜的数字小了")
}else {
alert("猜对了")
break;
}
}
2-Date
Date 是一个构造函数
var date = new Date();
获取到当前的年份
console.log(date.getFullYear())
获取当前的月份。 获取的值从0开始 所以加一
console.log(date.getMonth() + 1)
获取到日
console.log(date.getDate());
获取到星期几
console.log(date.getDay())
获取到国际时间
console.log(date)
获取到小时
console.log(date.getHours())
获取到分钟
console.log(date.getMinutes())
获取到秒
console.log(date.getSeconds())
例:
把 8:5:3 => 08:05:03
function getTimer() {
var date = new Date();
var hours = date.getHours();
var minutes = date.getMinutes();
var seconds = date.getSeconds();
hours = hours < 10 ? '0' + hours: hours
minutes = minutes < 10 ? '0' + minutes : minutes
seconds = seconds < 10 ? '0' + seconds : seconds
return hours + ":" + minutes + ":" + seconds
if(hours < 10) {
hours = '0' + hours
}
if (minutes < 10) {
minutes = '0' + minutes
}
if (seconds < 10) {
seconds = '0' + seconds
}
}
console.log(getTimer())
Date时间戳
时间戳是从1970年1月1日0:0:0 到某一点时间点位置的总毫秒数!!!
获取时间戳方式
var date = new Date();
1.获取时间戳方式1
console.log(date.valueOf())
2.获取时间戳方式2
console.log(date.getTime())
3.使用+new获取 这个+相当于调用valueof
console.log(+new Date())
4.Date.now()
console.log(Date.now())
例:
function djs(time){
var djsj = +new Date()
var wlsj = +new Date(time)
var caz = (wlsj - djsj) / 1000
var day = parseInt(caz / 60 /60 / 24 )
var hous = parseInt(caz /60 /60 % 24)
var fen = parseInt(caz / 60 % 60)
var miao= parseInt(caz % 60)
return "剩余时间为:" + day + "天"+ hous + "小时" + fen + "分钟" + miao + "秒";
}
console.log(djs( "2020-3-19 12:00:00"))
3-数组
01- 怎么判断一个变量是一个数组?
1.arr instancof Array,
true就是数组,如果不为true就不是数组
2.Array.isArray
Array是一个构造函数
02-数组修改
var arr = [1, 2, 3];
1.push函数
将10推到数组中去,并且返回arr的新长度 ,放到最后面
console.log(arr.push(10))
2. pop 弹出
将10 弹出去, 并且返回弹出去的值!!!弹出去最后面的值
console.log(arr.pop(10))
3.unshift 压入
将100压到数组中的最前面,并且返回数组的新长度
console.log(arr.unshift(100))
4.shift 弹出
shift 函数将100 弹出去, 并且返回弹出去的值!!! 弹出去最前面的值
console.log(arr.shift())
例:
筛选出来大于10的数据
var arr = [20, 30, 24, 10, 8];
var newArr = []
for(var i = 0; i < arr.length; i++) {
if(arr[i] > 10) {
newArr.push(arr[i])
}
}
console.log(newArr)
5. reverse 反转
var arr = [10, 8, 2, 3, 4, 5];
console.log( arr.reverse())
6. 数组的排序
在函数中传递函数。
arr.sort(function(a, b) {
return b - a; 倒序
return a - b; 正序
});
console.log(arr)
7.获取数组中元素的索引值
var arr = ["red", "yellow", "pink", "yellow"]
01-indexOf 获取到数组中第一个为yellow的索引值!!!
console.log(arr.indexOf("yellow")) // 索引下标是// 1
02- lastIndexOf 获取到数组中最后一个为yellow的索引值
console.log(arr.lastIndexOf("yellow"))
例:
数组去重
把数组中的每一项都取出来,
每取一个值,就要和新数组中进行对比,看是否有了这个字符,如果没有直接压入,如果有则抛弃
var arr = ["a", "b", "c", "a", "d", "b"]
function unique(arr) {
var newArr = [];
for(var i = 0; i < arr.length; i++) {
// indexOf如果返回值为-1, 则不存在改索引
if(newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique(arr))
7.数组转字符串
var arr = [1, 2, 3, 4];
1. console.log(arr.toString())
2. console.log(String(arr))
使用join函数进行自定义分隔符
console.log(arr.join("&")) // 1&2&3&4
字符串
单引号和双引号没有区别!!!
var str = "helloworld!!!";
console.log(str)
1.不可变性
var str = "helloworld";
console.log(str[1])
str[1] = "E" // 虽然给赋值了,但是没有发生变化!!!
// 字符串具有不可变性!!
str = "你好!!!"
console.log(str)
整体是可以改变的
2.根据字符返回位置
var str = "helloworld!!!";
使用 indexOf
可以知道第一个l在哪一个位置!!!
console.log(str.indexOf('l'))
console.log(str.indexOf('l', 4))
第二个参数是从索引值为4的位置开始查找!!!
3.查询字符串中某个字符出现的次数
查询出来 a 有多少个
var str = "abddadadffretrtysdfgadadsfs";
var num = 0;
var index = str.indexOf("a"); // indexOf如果没有这个字符,就会返回-1
while(index !== -1) { // 每一次循环必然会找到一个a.
num++;
index = str.indexOf('a', index + 1)
}
console.log("a出现的次数为", num)
4.由位置求出字符串中的字符
var str = "你好发不发出"
console.log(str.charAt(1))
for(var i = 0; i < str.length; i++) {
console.log(str.charAt(i))
}
注意:
charCodeAt是将字符转换成Ascii
var str = "helloworld"
console.log(str.charCodeAt(str[0])) // 这里将 h 转化为 104
formCharCode是将Ascii转换成字符
var num = 104;
console.log(String.fromCharCode(num)) // h
5.统计出来一个字符串中出现次数最多的字符,并且打印出来出现了几次!!!
var str = "aaadddvdfsaffgfddvxfhgdfgfdgg";
var obj = {}
for(var i = 0; i < str.length; i++) {
var char = str.charAt(i);
if(obj[char]) {
// obj['a']++ = 2
obj[char]++;
}else {
// obj['a'] = 1
obj[char] = 1;
}
}
var max = 0;
var ch = '';
for(var key in obj) {
if(obj[key] > max) {
max = obj[key]
ch = key;
}
}
console.log("在字符串中字符出现最多的是:"+ch+";出现了"+max+"次")
6.字符串合并和截取
var str1 = "hello"
var str2 = "world"
01-使用concat进行连接字符串
var str3 = str1.concat(str2)
console.log(str3)
02-截取字符串
var str4 = "中国加油,武汉加油"
// substr截取字符串
// 第一个参数为从索引号为0 开始
// 第二个参数取几个字符
// -1是在最后一个位置
console.log(str4.substr(-3, 2)) // 汉加
03- 字符串里面的字符进行替换
将 " " => ""
var str = "helloworld 改 革 春 风 吹 满 地 ";
// helloworld改 革 春 风 吹 满 地
// helloworld改革 春 风 吹 满 地
// helloworld改革春 风 吹 满 地
因为每次只能替换一个,所以可以用循环
while(str.indexOf(" ") !== -1) {
str = str.replace(" ", "")
}
console.log(str)
04-字符串转换成数组
使用split转换成数组
var str = "red,pink,blue"
console.log(str.split(","))