js基础Day2

数组的定义

1.通过构造函数创建数组:
var 数组名 = new Array(值);

注意:值为一个数字时,表示数组长度;值为多个数字时,表示数组的数据。

2.通过字面量的方式创建数组:
var arr = [];

注意:数组中存储的数据类型可以不一样。

for循环遍历数组:
for(var i = 0;i<arr.length;i++){
}
反转数组(把数组中的数据的位置调换):
for(var i =0;i<arr.length/2;i++){      //循环的目的是控制交换的次数
   var temp = arr[i];
   arr[i] =arr[arr.length-1-i];
   arr[arr.length-1-i]=temp;
}
冒泡排序(把一组数据按一定顺序排列):
for(var i=0;i<arr.length-1;i++){      //循环控制比较的轮数
   for(var j =0;j<arr.length-1-i;j++){     //循环控制每一轮比较的次数
     if(arr[j]>arr[j+1]){
        var temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1]=temp;
        }
     }
 }
 console.log(arr);

函数

  • 当函数被调用时,需要这个返回值,那么定义变量接收即可。
  • 形参和实参个数可以不一致。
  • 如果一个函数中没有明确的返回值,那么调用的时候接收了,结果就是undefined

如果没有明确的返回值:
1.函数中没有return;
2.函数中有return,但是return后面没有任何内容。

  • return下面的代码时不会执行的。
注意:
function f1(){
   var num = 10;     //console.log(f1) 打印的时函数里面具体的代码
 }
console.log(arguments.length) //获取的是函数在调用时传入的参数的个数

匿名函数不能直接调用。

两种定义方式:
1.函数声明:
function f1(){
};
f1();
2.函数表达式(把一个函数给一个变量):
var f1= function(){
};
f1();

注意:

  • 函数声明时后面覆盖前面;函数表达式中不覆盖。
  • 函数可以作为参数使用,如果函数作为参数,那么我们就说这个参数(函数)叫做回调函数。
  • 函数是可以作为返回值使用的。
局部变量与全局变量

局部变量:在函数内部定义的变量是局部变量,在外部不能使用。

js中没有块级作用域,但是函数除外。
隐式全局变量:声明的变量没有var,就叫做隐式全局变量。
全局变量不能被删除。 隐式全局变量可以被删除。

var num1=10;
num2=20;
delete num1;
delete num2;
console.log(typeof num1);         //Number
console.log(typeof num2);         //undefined
预解析:提前解析代码

1.变量声明提前(提前到当前所在的作用域最上面)
2.函数声明提前(提前到当前所在的作用域最上面)

console.log(num);   //undefined(把变量的声明提前了)
var num =10;

函数在调用的时候,会把函数的声明提前到当前作用域的最上面。如下代码:

function f1(){
console.log(num);    //undefined
var num =10;
}
f1();
  • 预解析中,变量的提升,只会在当前的作用域提升,提升到当前的作用域的最上面。
  • 函数中的变量只会提前到函数的作用域中的最前面,不会出去。
  • 预解析会分段(多对的script标签中的函数重名,预解析的时候不会冲突)
f1();                                    function f1(){
console.log(c);  //9                      var a;//局部变量
console.log(b);  //9                      a=9;
console.log(a); //报错	                  b=9;//隐式全局变量
function f1(){		                  c=9;//隐式全局变量
  var a=b=c=9;          变形为=>          console.log(a,b,c); // 9,9,9     
  console.log(a); //9   	          }				
  console.log(b);  //9                    f1();
  console.log(c); //9                    console.log(c,b,a);//9,9,报错
}
如下的代码在执行的时候,f1作为一个变量在执行的时候“var f1;”会被提升到最前面,此时f1()不能完成调用。
f1();  // 不能调用                                   
var f1 = function(){                  
console.log(a);
var a= 10;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值