一 Math对象
常用的数学方法
-
Math.max()
console.log(Math.max(1,99,3)) -
Math.min()
-
Math.abs() 取绝对值
console.log(Math.abs(-1)) -
三个取整的方法
- Math.floor() floor 是地板的意思 向下取整(往小了取) console.log(Math.floor(1.1))//1 console.log(Math.floor(1.9))//1
- Math.ceil( ) ceil 是天花板 向上取整
- Math.round() 四舍五入
- parseInt 只取整数部分
-
Math.random () 产生一个[0,1)的随机数
//我们想要得到两个数之间的随机整数 并且 包含这2个整数 Math.floor(Math.random() * (max - min + 1)) + min
封装一个自己的数学对象
//封装一个自己的数学对象,里面有PI,最大值和最小值
var myMath={
PI:3.1415927,
max:function(){
var max = arguments[0]
for(var i =0;i<arguments.length,i++){
if(arguments[i]>arguments[0]){
max=arguments[i]
}
return max
}
}
min:function(){
var min = arguments[0]
for(var i =0;i<arguments.length,i++){
if(arguments[i]<arguments[0]){
min=arguments[i]
}
return min
}
}
}
myMath.max(1,3,5)
二 日期对象
Date() 日期对象 是一个构造函数,须使用new 来调用创建我们的日期对象
-
new Date() 如果没写参数,返回系统当前时间 如果参数里面有时间,返回参数里面的时间 new Date('2019-5-5')
//如果我们想获得2019-8-8这样的日期格式,需要手动格式化日期 var date=new Date(); date.getFullYear()//获取年 date.getMonth()+1 //正常获取的月份小一个月 date.getDate()//获取的是几号 date.getDay()//获取的是周几 1-6 周日是 0 date.getHours()// 输出 今天是2020年9月13日 星期二 var time = new Date(); var year = time.getFullYear(); var month = time.getMonth(); var dates = time.getDate(); var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六' ] var day = time.getDay(); var days = arr[day] console.log(`今天是${year}年${month}月${dates}日 ${days}`) -
获取时间戳
- valueOf() 或者 getTIme()
- +new Date()
- h5新增的方法 Date.now()
三 数组方法
- 创建数组的两种方法
- 字面量 var arr = []
- 使用new Array var arr1 = new Array(2,3)//[2,3] new Array(5)//[empty × 5]
- 检验是否为数组
- instanceof 返回的结果是true 或者false
- 用来判断该实例是否为某个对象的实例
var arr = [1,2,4]; console.log(arr instanceof Array)//true - Array.isArray(参数)
js var arr = [1,2,4]; console.log(Array.isArray(arr))//true - typeof 用来检测的数据类型
typeof 的返回值包括以下几种
"undefined" 'boolean' 'string' 'number' 'object' 对象类型的变量 ,null 也是object 'function'
console.log(typeof(a))//'undefined'
console.log(typeof(true))//'boolean'
typeof(NaN)//'number'
typeof(null)//'object'
typeof([])//'object'
var fn = function(){};
typeof(fn)//'function'
-
添加删除数组的方法
- push() 在数组末尾添加一个或者多个元素 返回的结果是新数组的长度 原数组发生改变
-
返回的结果是新数组的长度 原数组发生改变unshift() 在数组的开头增加元素 -
pop( ) 没有参数 返回的结果是删除的那个元素 原数组发生改变pop( ) 删除数组的最后一个元素 -
返回的结果是删除的那个元素 原数组发生改变shift( ) 删除数组的第一个元素 shifit( ) 没有参数
-
翻转数组 reverse()
var arr = ['red','blue','haha','pink']; arr.reverse()j; console.log(arr) //自己写翻转数组 var arr = ['pink', 'red', 'blue']; var newArr=[]; for(var i = arr.length-1;i>=0;i--){ newArr[newArr.length] = arr[i] } console.log(newArr) -
数组排序 sort( )
// a-b 升序 // b-a 降序 var arr1=[13,4,17,3]; arr1.sort((a,b)=>a-b) -
返回数组索引号
indexOf( ) 返回该数组元素的索引号, 只返回第一个满足条件的元素的索引号, 如果不存在该元素,返回-1 从前面查找 lastIndexOf( ) 从后面开始查找
var arr = ['red', 'green', 'pink','blue']; console.log(arr.indexOf('blue'))//3 -
数组去重
//['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] 去除数组中重复的元素。 //核心思想:遍历旧数组元素,创建一个空数组,如果该数组元素没有在新数组里面出现过 //我们就把它放到新数组元素中去 //怎么判断数组元素在新数组是否存在 : 使用indexOf ==-1 //或者includes var arr =['c', 'a', 'z', 'a', 'x', 'a', 'x', 'c', 'b'] var newArr = []; for(var i =0; i<arr.length;i++){ if(!newArr.includes(arr[i])) newArr.push(arr[i]) } console.log(newArr)//["c", "a", "z", "x", "b"] -
数组转换为字符串
- toString( )
- join( )
var arr = [1, 2, 3]; //arr.toString(); //console.log(arr.join()) //console.log(arr.join('$')) "1&2&3" -
删除数组:splice( 第几个开始,要删除个数),返回被删除项目的新数组 ,原数组发生改变
四 字符串方法
-
charAt( ) 根据索引返回字符
var str = 'abcdefg'; console.log(str.charAt(3)) -
charCodeAt( ) 返回相应索引号的字符ASCII值
-
concat 字符串或者数组拼接
var str = 'acfd' str.concat('red') //"acfdred"//数组拼接 var arr=[1,2,34,4] arr.concat([88,44,2]) //[1, 2, 34, 4, 88, 44, 2] -
substr('截取的起始位置', '截取几个字符');
var str1 = '改革春风吹满地'; console.log(str1.substr(2, 2)) //春风 -
replace ('被替换的字符', '替换为的字符')
var str = 'andyandy'; console.log(str.replace('a','o')) //ondyandy //把里面所有的a 都替换为 o for(var i =0;i<str.length;i++){ if(str.charAt(i)=='a'){ str= str.replace('a','o') } } -
split ( '分隔符') 把字符串转换为数组
- join 把数组转换为字符串
var str2 = 'red, pink, blue'; console.log(str2.split(','));// ["red", "pink", "blue"] var str3 = 'red&pink&blue'; console.log(str3.split('&'));//["pink", "blue", "red"]
//判断一个字符串 'abcoefoxyozzopp' 中出现次数最多的字符,并统计其次数。 //循环字符串,创建一个对象,如果字符没有在对象中,那么就把其存入对象里面,属性值计为1; // 如果某个字符再出现,那么将其属性值++ //遍历obj ,求出出现次数最多的字符串 var str = 'abcoefoxyozzopp'; var obj ={}; for(var i = 0;i<str.length;i++){ if( obj[str.charAt(i)]){ obj[str.charAt(i)]++ }else{ obj[str.charAt(i)]= 1 } } console,log(obj) a: 1 b: 1 c: 1 e: 1 f: 1 o: 4 p: 2 x: 1 y: 1 z: 2 var max = 0; var ch = '' for(var key in obj){ if( obj[key] >max){ max= obj[key] ch = key } } console.log(max,ch) - join 把数组转换为字符串