A
实参 形参
<script type="text/javascript">
// 当函数的参数个数无法确定的时候:用 arguments
function fn(a){
// 形参的长度 (函数名.length)
// console.log(fn.length)
// arguments 就是实参的集合 也是(类似数组的集合) 伪数组
// 实参的长度
console.log(arguments.length)
console.log(arguments[0])
console.log(arguments[arguments.length - 1])
}
fn(1,2,3,4,4)
// getElementsByTagName("")[0]
// getElementsByTagName("")[1]
function fn(){
for(var i =1;i<=arguments[0];i++){
console.log(i)
}
}
fn(7)
argument
<script>
// 课后练习:
//alert( fn1( 7 ) ); // [ 1,2,3,4,5,6,7 ]
/*
拿到1-7 , 想到for循环;
向数组添加元素 就要先有个数组 ,创建一个数组 , 把刚才拿到的1-7 添加(push)到数组里面
wo 需要这个函数 做什么 就是上面 那些
返回什么
return 跟着什么 。 函数的结果(值)就是什么
形参 a,b 给实际传进来的实参 1和100 站位置
*/
// function fn2(a,b){
// var arr = [];
// for(var i=a;i<=b;i++){
// arr.push(i)
// }
// return arr
// }
// alert( fn2(2, 5) ); // [ 2,3,4,5 ]
// function fn2(){
// var arr = [];
// for(var i = arguments[0];i<=arguments[1];i++){
// arr.push(i)
// }
// return arr;
// }
// var a = fn2(2, 15)
//alert( sum( 1,2,3,10 ) ); // 16
// alert( sum( 1,2,3,4 ) ); // 10
// function fn3() {
// var sum = 0;
// for(var i = 1;i<5;i++){
// sum +=i
// }
// return sum;
// }
// var a = fn3()
/*----------arguments----------------------------------*/
// function sum() {
// var sum = 0;
// for(var i = 0;i<arguments.length;i++){
// sum +=arguments[i]
// }
// return sum;
// }
// var a = sum(1,2,3,10,11)
//arguments 理解为 arr = [1,2,3,10]
// 课后练习:
// alert( sum( 1,2,3 , '+' ) ); // 6
// alert( sum( 10,2,3,4, '-' ) ); // 1
// function sum() {
// if(arguments[arguments.length-1]==="+"){
// var sum = 0;
// for(var i = 0;i<arguments.length-1;i++)
// {
// // console.log(arguments[i])
// sum += arguments[i]
// }
// return sum
// }
// else if(arguments[arguments.length-1]==="-"){
// var a = arguments[0]
// for(var i = 1;i<arguments.length-1;i++){
// console.log(arguments[i])
// a -= arguments[i]
// }
// return a;
// }
// }
// var b = sum( 1,2,3 , '+' )
// var b = sum( 100,2,3 , '-' )
/*
argument 元素 能不能用 冒泡 排序
*/
</script>
while循环
// while循环
// 只要指定条件为 true,循环就可以一直执行代码。
// while (条件)
// {
// 需要执行的代码
// }
// var i = 0;
// while(i<5){
// console.log(1);
// i++;
// }
//
// 1-100的和
// var sum = 0;
// var i= 1;
// while(i<=100){
// sum+=i;
// i++
// }
// 1-100 添加到数组
//
// var i= 1;
// var arr = [];
// while(i<=100)
// {
// arr.push(i)
// i++;
// }
// do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。
// do
// {
// 需要执行的代码
// }
// while (条件);
// do{
// var bool = confirm("你确定嫁给你前端了吗")
// if(bool){
// alert("那就好好学习把")
// }
// }while(!bool)
// var a = 1;
// do{
// console.log(a);
// a++;
// }while(a<10)
// break立即跳出循环
// continue立即跳过本次循环
var i = 0;
var arr = [];
var arr1 = [];
while(i<=10){
i++;
if(i%2==1){
continue;
arr1.push(i)
}
arr.push(i)
}
</script>
插入排序
<script type="text/javascript">
// 插入排序
var arr = [212,222,2213,2231,22221,2221]
// //temp变量用于临时存储待插入元素
// //将大于temp的arr[j]元素后移
for(var i = 1;i<arr.length;i++){
var temp = arr[i];
while(i>0 && temp < arr[i-1]){
// 前一项赋值给当前项(移位)
arr[i] = arr[i-1];
i--;
}
document.write(i+"<br>")
// 归位
arr[i] = temp;
}
</script>
arguments 元素能不能 冒泡排序
<script type="text/javascript">
function fn() {
// for(var i = 0;i<arguments.length-1;i++){
// for(var j=0;j<arguments.length-1-i;j++){
// if(arguments[j]>arguments[j+1]){
// var temp = arguments[j+1];
// arguments[j+1] = arguments[j];
// arguments[j] = temp;
// }
// }
// }
console.log(Array.isArray(arguments))
// 需要把 伪数组 转成 真正的数组
var a = Array.prototype.slice.apply(arguments)
console.log(Array.isArray(a))
var arr = a.sort(function(a,b){return a-b})
return arr
}
var a = fn(5,3,4,10,2)
</script>
数组的方法
<script type="text/javascript">
// join
//
// var arr = [1,2,3,4,5];
//1、 数组转字符串 2、分割(连接、合并)
// var a = arr.join()
// var b = arr.join("|")
// var c = arr.join("A")
// var d = arr.join("")
// fn(2,3) 246 = 2+22+222
// function fn(a,b){
// var str = "";
// var arr = [];
// // 第一次循环的时候,就把str 添加到数组里面
// for(var i =0;i<b;i++){
// // 第一次循环的时候 str 变成 2+"" 就是 "2"
// str += a;
// arr.push(str)
// }
// return arr.join("+")
// }
// splice()
// splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
// (index从第几个开始删除,删除几个,添加的元素(第三个参数可以没有,就是不添加))
// arr.splice(1,1);
// arr.splice(1,2);
// arr.splice(1,1,800);
// 从第三项开始可以传无限多,就是添加的元素
// arr.splice(1,1,8,9,9,9,9,9,9,10);
/*
不要和冒泡排序混了
两个for循环,循环拿出元素 和 之后的所有项比较
如果相同 就是干掉 (splice) splice(j,1)
每干掉一个元素后 ,循环次数减一
*/
/*
for 还是不懂 , 打断点看看
*/
// var arr = [1,1,1,2,3,4,51,2,3,4,5];
// for(var i = 0;i<arr.length;i++){
// for(var j=i+1;j<arr.length;j++){
// if(arr[i] == arr[j]) {
// arr.splice(j,1)
// j--;
// }
// }
// }
</script>