一、数组:
什么是数组?,简单的说就是,在一个·变量上存储多个值。
怎么设置数组?
[ ] 中括号,这个形式的表示的是数组;
声明方式:
第一种:
var arr = [ ]
第二种:
var newArr = new Array ( )
这里的newArr是数组名,这个可以随便变,但是其他的地方不要改,特别是new 后的Array不能改。改的话就不能解析出你设置的是个啥了。(注意: Array 数组的意思)
数组的赋值:
1、
字面量的形式存值 --- 如果存储多个值 那么中间以 逗号隔开 就可以了 最后一个值 后边是不加逗号的 : var arr1 = [100,200,300]
2、
var arr2 = new Array(10) 如果小括号里 写了一个值 那么这个值 是修改了 数组里边的个数的
var arr3 = new Array(10,20) 如果是写了两个值以以上 那么这些值 都会存储到数组里
注意 : 数组里边的值 数据类型 没有任何要求 随便写 都可以的
数组里边的值的使用?
数组名 [索引号]
其中, 索引一定是从0 开始的
<script>
var arr = [10,20,30]
console.log(arr);
// 现在 要用 20 这个值
// 从数组里边 怎么取值
// 数组名[索引号]
console.log(arr[1]);
console.log(arr[0]);
console.log(arr[2]);
</script>
数组里边 要获取 值的个数 有一个属性 叫做 length
数组里边 最后一个值的 索引号 固定的是 数组的length值 -1
数组里边 第一个 值的 索引号 永远是 0
var arr = [11,22,44,55,10,30,60,58,95,66,77,89]
console.log(arr);
// 求数组里边 所有数的和 617
// 1、得到数组里边的 每一个值
// 数组名[索引号] 索引号 是从0 开始 依次 + 1
var sum = 0
for(var i = 0 ; i < arr.length ; i++){
sum += arr[i]
}
console.log(sum);
给数组里边添加值
1 、 正常添加
数组名[数组名.length]
2 、 不正常添加
数组名[索引号]
索引号有对应的值 这个时候 不会添加 会覆盖
索引号没有对应的值 undefined 可能会给 数组里边 添加一些 empty
<script>
var arr = [44,55,77,88,66,33]
// console.log(arr[3]);
// console.log(arr[arr.length - 1]);
// console.log(arr[arr.length]);
// arr[0] = 123
// console.log(arr);
// arr[arr.length] = 456
// console.log(arr);
// console.log(arr.length);
arr[10] = 100
console.log(arr);
</script>
二、函数:
什么是一个函数 :
就是把一部分相同的代码操作 放在一个容器里边去 放进去的代码是不执行的 让他执行 他才执行的。
语法结构:就是用函数自己的 关键词 来得到一个 函数 function
1、常用结构:
function 函数名()
{
函数调用的时候执行的代
}
2、这里也是使用 var 关键字 来声明一个变量 然后把一个函数 当成值 赋值给这个变量
语法结构是(这个了解即可) :
var fun = function(){ } 匿名函数
注意 : 函数里边的代码 不会自己执行 必须要调用一下 才会执行
调用函数 :
调用一个函数 首先要拿到这个函数的名称
函数名() 这就是函数的调用
函数的参数:
形式参数
写在声明函数的小括号里的 就是形式参数 形参
function fn( ) { } fn后边的小括号 就是 声明函数的小括号
而且是不需要声明的形参
实际参数
写在函数调用的 小括号里的 就是 实际参数 实参
fn() 写在这个小括号里的 就是 实际参数
function fuc(a,b,c){}
fuc(10,20,30)
<script>
// 函数的参数 问题 :
function fun (a,b,c){
console.log(a);
console.log(b);
console.log(c);
}
// fun() // 没有传递实参 那么形式参数的值 是啥? undefined
// fun(10,20,30) // 传递了 对应的实参 10 20 30
// 因为 实参 是 形参 匹配的时候 要 一一匹配 一一对应匹配
// fun(100,200)
// 当实参的 个数 小于 形参的个数 对应的形参 是可以匹配值的 剩余形参就没有值 是 undefined
fun(100,200,300,400)
// 当实参的 个数 多余 形参的 时候 对应的形参 都是有值的 但是最后多余的 实参 是没有人要的
</script>
arguments 函数里边自带的一个属性
作用 : 是获取 传递过来的所有实参 并且放在一个 数组里的
<!--
arguments 函数里边自带的一个属性
作用 : 是获取 传递过来的所有实参 并且放在一个 数组里的
注意 : arguments 直接使用 不能放在 声明函数的小括号里 放在小括号里 变成形参了 就只能接收一个值了
-->
<script>
function fuc (){
console.log(arguments);
// var sum = 0
// for (var i = 0; i < arguments.length; i++) {
// sum +=arguments[i]
// }
// console.log(sum);
}
fuc(10,20,30,40,50,60)
</script>
函数里边有一个return
1、 给调用者 返回一个值
2、 函数里边 如果遇到了 return 那么 return 后边的代码(函数里边的代码)是不执行的
<!--
函数是有一个 return 的
-->
<script>
// var arr = [1,4,2,5,6,3]
// console.log(arr.reverse());
function reverse(arr){ // 点完以后 这个reverse 去做这个菜
var newArr = []
for(var i =arr.length - 1;i>=0 ; i--){
newArr[newArr.length] = arr[i]
}
// 这里的时候 证明 菜 已经做好了 这里需要用到一个 return newArr
return newArr
// console.log(newArr);
console.log(123456798);
}
console.log(reverse([10,20,30,40,50])); // 这里 调用函数的时候 就类似于 点菜了
// reverse([10,20,30,40,50]); // 这里 调用函数的时候 就类似于 点菜了
console.log(789789);
// 现在要去饭店 点菜
// 点完菜 要去做
</script>