关于变量作用域
// 纸上得来终觉浅, 绝知此事要躬行。
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}`)
chartAt() 实例面试题
// 统计出现次数最多的字符
var stringTmp = 'zan-men-jiu-yao-you-gu-qi'
var obj = {}
for(var i=0;i<stringTmp.length;i++){
var charts = stringTmp.charAt(i)
if(obj[charts]){
obj[charts]++
}else{
obj[charts] = 1
}
}
var max = 0,key = '';
for(k in obj){
if(max<obj[k]){
max= obj[k]
key = k
}
}
console.log(`出现最多的是${key},出现了${max}次`)
字符串常用方法
- concat(str1,str2,str3,…) concat 方法用于连接两个或者多个字符串,拼接字符串,等效于+ 号
- substr(start,length) 从start 位置开始(索引号),length截取得个数
- slice(start,end) 从start 位置开始,截取到end位置,end取不到(两个参数都是索引号)
- substring(strat,end) 从start 位置开始,截取到end位置,end取不到
- toUpperCase() 转换成大写
toLowerCase() 转换成小写
替换字符串
var str = 'hao-hao-xue-xi' // 将-换成* while(str.indexOf('-')!=-1){ str = str.replace('-',"*") } console.log(str)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。