函数: 封装性,复用性,调用性 函数名 小驼峰(首字母不要大写)
形参:
函数调用时的参数
返回值 return
返回一个结果
结束整个函数
作用域
预编译 函数可以先调用后声明
arguments 用于接收实参列表(伪数组)
递归函数 自己调用自己
构造函数 创建对象
回调函数 ?
数组
创建方式2种 [] new Array(1,2,3,4)
数组的长度,数组的下标
数组的长度和值可以随时被更改
数组的遍历
for
for in 遍历下标 主要是用于遍历对象(不适合数组)
for of 遍历值
封装
includes() 判断数组中是否存在某个值
质数判断的假设法和是否存在的假设法作对比(到底flag为true还是false)
join() 把数组变成字符串(三目)
i<arr.length -1 ? arr[i] +',' :arr[i]
push() 向数组尾部追加无数个 遍历arguments, 把数组的长度边长 arr[arr.length] = arguments[i]
pop() 删除数组中最后一个值 创建一个新的数组 遍历原数组时丢掉最后一个 i<arr.length - 1
随机验证码
随机取数组中的一个值,(根据下标)
冒泡排序
选择排序
------------------------------------------- 数组的方法 push() pop() unshift() shift()
数组的常用方法
join() 把数组变成字符串
includes() 判断数组中是否存在某个值
indexOf() 判断数组中是否存在某个值,返回第一次出现的下标,找不到就返回-1
lastIndexOf () 判断数组中是否存在某个值,返回最后一次出现的下标
concat() 拼接数组,返回一个新的数组
slice(i,i) 截取数组中的部分值,返回一个新的数组
splice(i , 删除的个数,新增的值...) 新增,删除,替换 --- 直接改变原数组 !!!
function includes(arr,n){
//遍历数组
for(var i in arr){
if(arr[i] === n){
return true}
}
return false}
function indexOf(arr,n){
for(var i in arr){
if(arr[i] === n){
return i}
}
return -1}
function lastIndexOf(arr,n){
反着遍历
for(var i = arr.length -1 ; i >= 0 ; i--){
if(arr[i] === n){
return i}
}
return -1}
var arr = [1, 2, 3, 4, 2, 5];
var str = arr.join(',');
console.log(str);
console.log(arr.includes(20));
console.log(arr.indexOf(2));
console.log(arr.lastIndexOf(2));
var arr1 = [1,2,3];
var arr2 = [4,5,6];
var arr3 = arr1.concat(arr2);
console.log(arr3);
//slice(i,i) 截取数组中的值 (包前不包后)
var arr5 = [1, 2, 3, 4, 5];
var arr6 = arr5.slice(0, 2);
console.log(arr6);
// splice(i, 删除的个数, 插入的值) 删除, 替换, 新增
// 用法1 在任意位置插入数据
// 插入a, 1, b
// arr.splice(i, 0, 'a', 1, 'b');
// 用法2 删除
// 从[i] == 2 开始删除两个
// arr.splice(i, 2, 2)
// 用法3 替换
arr6.splice(1, 2, 'haha', 'nihao');
console.log(arr6)
基本数据类型:number string boolean null undefined
基本数据类型可以通过typeof来判断
引用数据类型: function 数组 对象
Array.isArray() 判断是不是数组
var arr = [1,2,3];
console.log(typeof arr);
console.log(Array.isArray(arr));