对于变量作用域
// 纸上得来终觉浅, 绝知此事要躬行。f1()console.log(c)console.log(b)console.log(a)function f1(){ var a = b = c = 7; console.log(a) console.log(b) console.log(c)}// 该题后果为: 7、7、7、7、7、a is not defined(error 报错)// 其中 var a = b = c = 7,相当于 var a = 7 ; b = 7; c = 7
两个数两头的随机整数,并且蕴含这两个数
function getRandom(min,max){ return Math.floor(Math.random()*(max-min+1)) + min);}
获取工夫戳
// 办法一 : valueOf ,办法二 getTime()var data = new Date()console.log(data.valueOf())console.log(data.getTime())// 办法三:var data1 = +new Date()// 办法四:(H5新增办法)var data2 = Date.now()
对于数组
检测是否为数组
- arr instanceof Array 返回值为true 或者fasle
- Array.isArray(arr) H5新增的办法
数组的增删改
- push() 在数组的开端增加一个或者多个元素。push的 返回值为数组的长度,push后原数组也会产生扭转
- unshift() 在数组的开始增加一个或者多个元素,返回值为数组长度,原数组会扭转
- pop() 删除数组最初一个元素,返回值为删除的那个元素,原数组会扭转
- shift() 删除数组第一个元素,返回值为删除的那个元素,原数组会扭转
数组排序
冒泡排序(外层循环示意趟数,里层循环示意比拟次数)
function sortNum(arr){for(var i = 0 ;i<arr.length;i++){ for(var j = 0 ;j<arr.length-i-1;j++){ if(arr[j]>arr[j+1]){ var tmp = arr[j] arr[j] = arr[j+1] arr[j+1] = tmp } }}return arr}
数组罕用办法
// sort 排序var arr = [0,8,1,3,9,4,10]// a-b为升序,b-a为降序arr.sort((a,b)=>a-b)console.log(arr)//数组翻转arr.reverse()console.log(arr)// 数组转换成字符串console.log(arr.toString())console.log(arr.join()) //join(分隔符) ,不传入的时候,默认为, // concat() 连贯连个或者多个数组,不影响原数组,返回一个新数组// slice() 数组截取slice(begin,end) 返回被截取我的项目的新数组// splice() 数组删除 splice(第几个开始,要删除个数) ,返回被删除我的项目的新数组,留神:这个会影响原数组
数组去重
function unique(arr){ var newArr = [] for(var i = 0;i<arr.length;i++){ if(newArr.indexOf(arr[i])===-1){ newArr.push(arr[i]) } } return newArr}arr = ['1','3','4','1','2']console.log(unique(arr))
获取数组元素的索引号
indexOf(元素)
,返回该元素的索引号(从后面开始查找给定的第一个元素的索引),如果元素不存在数组中,返回-1lastIndexOf(元素,可选参数)
,返回该元素的索引号,(从前面查找给定的第一个元素的索引值),不存在则返回-1。可选的整数参数。规定在字符串中开始检索的地位
indexOf() 实例面试题
// 查找字符串中所有n呈现的地位及次数var stringTmp = 'gai-ge-chun-feng-cui-man-di'var idx = stringTmp.indexOf('n')var count = 0;var positArr = []while(idx!=-1){ count++; positArr.push(idx) idx = stringTmp.indexOf('n',idx+1)}positArr = positArr.join()console.log(`n呈现的地位别离是${positArr},呈现的次数为 ${count}`)