jsday08

88 阅读4分钟

知识点

函数:

1.封装性,2.复用性,3.调用性,4.函数名使用小驼峰命名(首字母不要大写)

函数的形参:是指函数声明时的参数,是用来接受实参的,本质上是局部变量。

函数的实参:函数调用时的参数。

函数的返回值:return       返回一个函数结果,结束整个函数。

函数的作用域: 就是起作用的范围。或者说有效范围。

                       局部变量:局部变量就是定义在函数内部的变量,这个变量只能在函数内部使                                            用,即作用域范围只是函数内部,另外,形参也是局部变量。

                       全局变量:全局变量就是定义在函数外部的变量,这个变量在任何函数中都有                                            效,即作用域范围是当前文件的任何地方。

函数的预编译:函数可以先调用后声明

arguments  用于接受实参列表(伪数组)

递归函数:自己调用自己

构造函数:创建对象

回调函数:把一个函数当做另一个函数的参数

数组

数组的创建方式: var  arr = 【】    newArray(1,2,0,3,5)

数组的长度:length属性,数组元素的个数

数组的下标:下标就是索引,即元素的序号,从0开始,下标最大取值是:长度-1;下标可以是变量或表达式。

数组的长度和值可以随时被更改。

数组的遍历:for ,for in,for of

                   for in:遍历下标,主要是用于遍历对象(不适合数组)

                   for of:遍历值  

数组的封装

数组的方法

unshift()  向数组的头部追加值

shift()     向数组的头部删除一个值

push()向数组尾部追加值,遍历arguments,把数组的长度变长

                  arr[arr.length] = arguments[i]

pop()删除数组中最后一个值,创建一个新的数组,遍历原数组时丢掉最后一个

              i < arr.length - 1 

join() 把数组变成字符串

(三目运算符) i < arr.length - 1 ? arr[i] + ',' : arr[i];

includes() 判断数组中是否存在一个值,(与质数判断的假设法相对比,判断flag为true还是false)

indexOf()       判断数组中是否存在某个值,返回第一次出现的下标,找不到就返回-1

lastIndexOf() 判断数组中是否存在某个值,返回最后一次出现的下标

concat()   拼接数组,返回一个新的数组

slice(i,i)     截取数组中的部分值,返回一个新的数组

splice(i , 删除的个数 , 新增的值...)    新增,删除,替换 --- 直接改变原数组 !!!!!!!

判断数组

数组属于引用数据类型     Array.isArray() 判断是不是数组

数组的迭代

sort()     ASCII升序

forEach(function(v,i,arr){}) 遍历数组

map(function(v,i,arr){}) 改变数组中的值,返回一个新的数组 必须return

filter(function(v,i,arr){}) 过滤器,找到满足条件的值,返回一个新的数组

every(function(v,i){}) 判断数组中是不是每一个值都满足条件

some(function(v,i){}) 判断数组中有没有满足条件的值

随机验证码

随机验证码,必须同时包含小写,大写和数字

1.先创建一个随机数

 function rand(min , max) {

return parseInt(Math.random() * (max - min) + min)

}

2.由于结果是数组,要把数组转化为字符串

 function join(arr , f) {

var res = '' ;

for(var i = 0 ; i < arr.length ; i++) {

res += i < arr.length - 1 ? arr[i] + f : arr[i]

}

return res

}

3.需要4位数验证码

function randCode(n) {

// 默认4位

n = n || 4 ;

var arr2 = [] ;

var numArr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];

var bigArr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] ;

var smallArr = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] ;

var allArr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] ;

// 从数字中拿取一个

arr2.push(numArr[rand(0,numArr.length)]) ;

// 从大写中拿取一个

arr2.push(bigArr[rand(0,bigArr.length)]) ;

// 从小写中拿取一个

arr2.push(smallArr[rand(0,smallArr.length)]) ;

// 从所有的拿取一个

arr2.push(allArr[rand(0,allArr.length)]);

//这时的随机数已经生成了,但是,是按照数字、大写字母、小写字母、随机值排列的

// 打乱顺序,随机交换每个位置上的值

for(var i = 0 ; i < arr2.length ; i++) {

var j = rand(0 , arr2.length) ;

var t = arr2[i] ;

arr2[i] = arr2[j] ;

arr2[j] = t ;

}

//返回数值

return join(arr2 , '') ;

}

var res = randCode();

document.write(res);