总结的一些注意事项:
一、在判断前不要转字符 string类型中""就是空 parseInt parseFloat类型中" "引号中加个空格才是空
// 判断是否为空的时候 直接用字符型的判断 因为数字类型永远没有为空的情况// 判断是不是字母 或者是不是负数的时候可以转为数字类型来判断也可以不转
二、不想写重复代码的解决方案:
1、作为全局变量
2、实参和形参的传递
三、arguments 存在于所有的函数中
arguments对象 所有的实际的参数
length表示arguments这个对象一个属性 表示实际参数的个数
alert(arguments.length);
alert(arguments[0]);
alert(arguments[arguments.length-1]);
var sum=0;
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);
sum+=arguments[i];
}
四、函数的递归调用
函数自己调用自己
数组的介绍
五、数组(属于内置对象中的一种)Array数组是数据的有序列表 作用就是可以存储大量的数据
学习数组的声明、赋值、遍历、方法及应用
js语言数组的特点:
长度可变
数据类型不固定
1、数组的声明
a、利用构造函数声明方法
var arr = new Array(); //是一个空数组
b、利用构造函数声明方法
var arr = new Array(5); //声明方式容易被人误解 到底是长度是5还是第一个元素的值是5
var arr = new Array("ddd"); //数组的第一个元素的值是ddd
console.log(arr);
c、利用构造函数声明方法(边声明边辅助)
var arr = new Array(122,123,34,56,234,"asdc");
var arr = new Array("a","b","c");
//注意数组的下标,从0开始不能更改
d、字面量的声明方法 最直观最推荐的声明方法
var arr = ["2222",true,"fdgaasd","adsc"]; 这是赋值了的数组
var arr = []; 这是一个空数组
2、数组的赋值
arr1[0] = "3333";
arr1[5] = "555";
可以赋值为相同数据类型的,也可以赋值不同数据类型的
可以顺序赋值,也可以了、跳跃赋值
arr2[0] = "123";
arr2[1] = true;
arr2[5] = "abc"
3、数组的遍历
//定义5个元素的数组,求这个数组中的和
写数组就要用到循环
var arr = [123,123,123,123345,64];
var sum = 0;
for(var i=0;i<arr.length;i++){ 这里的i是数字
console.log(arr[i]);
sum+=arr[i];
}
console.log(sum);
//for ... in ... 相对于for循环来说语法更加简单简洁了 i是下标 这里的i是String型的并不是数字
var sum=0;
for (var i in arr){
console.log(i);
sum+=arr[i];
}
console.log(sum);
//for ... each .. 最新的浏览器才支持
var sum = 0;
arr.forEach(function(v){ 要严格注意forEach的语法 大小写以及后面要跟function()
console.log(v);
sum+=v;
})
console.log(sum);
4、数组的属性和方法 对象.属性 对象.方法
属性:length;
length是可读可写的
var arr = new Array[6];
alert(arr.length); 可读 结果是6
arr.length = 10;
alert(arr.length); 可写 结果是10
Math.random():生成0-1之间的随机小数,包括0不包括1
onload:页面加载时间:作用是将页面所有的标签读取完之后再去读js代码
onclick:点击事件
window.οnlοad=function(){
f();
}
格式 window.οnlοad=function(){} function 是一个匿名函数 在匿名函数里面再写这个f();函数
在页面都加载完成之后再调用js中的f()函数
方法
push(v1,v2...):向数组最后一个位置添加一个元素或者多个元素; 返回值:长度,原数组改变
pop():删除数组中最后一个元素; 返回值:删除的那个元素,原数组改变
unshift(v1,v2...):向数组开头一个位置添加一个元素或者多个元素; 返回值:长度,原数组改变
shift():删除数组中的第一个元素; 返回值:删除的那个元素,原数组改变
reverse();将数组反序输出;原数组改变,返回值为倒序以后的数组
join():将数组转成字符串,返回值为一个字符串 || toString():将数组转成字符串
这两个的区别 前面那个转为字符串之后没有逗号 后面那个转完之后有逗号分隔
concat(v1,arr1,arr2,123,"avxc");将一个元素或者多个元素或者数组进行连接,返回值是新的数组
arr.concat(arr1,12,"haha");
slice(start,end);切割数组,返回值为切割以后的数组 包头不包尾 包括开头的位置不包括结尾的位置(下标)
start 必须要大于等于0并且小于end
splice(index,howmany,v1):添加或者删除数组中元素
index:数组的下标 不可以省略
howmany:值为0的时候,表示的是不删除元素
如果为其他数值,表示从index的位置开始删除几个
值为0的时候,添加一个v1到下标为index的位置 原来位置上的元素后移
v1:表示添加的元素可以省略
以后就这样验证
arr.splice(index,howmany,v1)
console.log(arr);
indexOf():数组中的元素第一次在数组中出现的位置 找不到时返回值为-1
lastIndexOf():数组中的元素最后一次在数组中出现的位置 找不到时返回值为-1
sort():排序 并不是按照理想顺序排
数组的冒泡排序:
二维数组
声明
var arr = [ [12,24,25,26],[123,123,123],[53,324] ]
var sum=0;
for (var i=0;i<arr.length;i++){
for(var j=0;j<a[i].length;j++){
sum+=arr[i][j];
}
}
赋值
遍历
多维数组