JavaScript学习笔记:day2

流程控制:

任何一门编程语言都有的语法,一个值的控制程序按照怎么样的顺序去执行

JS中有三种控制流程的方法。

顺序选择:

 选择结构:

        单向选择:

                if(条件:这里会返回布尔值,当布尔值为true的时候执行下面代码块。){

代码块}

if(条件){
	代码块			
}

         双向选择:

                if(条件){

                如果返回true则执行代码块1,

                }else{ 

                返回false执行代码块2

                }

if(条件){
	代码块	1		
}else{
	代码块	2		
}

        多向选择:

                if(条件1){
                        条件返回true执行代码块1
                    }else if(条件2){
                        条件1返回false,条件2返回true执行代码块2
                    }else
                        条件1,2都返回false,执行代码块3
                    }

if(条件1){
		代码块1		
}else if(条件2){
		代码块2	
}else
		代码块3		
}

        switch分支:

case(情况)、break(断开/结束/跳出)、default(默认)、可以理解为if里面的else

当判断值为1的时候执行代码块1,当判断值2的时候执行代码块2,当判断值为n的时候执行代码块n。都不满足执行最后代码块。

switch(判断值){
case 1:
    代码块1;break;
case 2:
    代码块2;break;
	·
	·
	·
case n:
    代码块n;break;
default:
    最后代码块;
}

               

if判断条件为真的条件

   a.当不为0的纯数字,则返回真 ;为0,返回为假;

   b.非空字符串,返回true; 空字符串"",返回false;

   c.所有对象、数组,返回true;null、undefined 返回的是false;

   d.当一个函数存在的时候,则为真,否则为假;


循环结构: 

        do-while循环:

do{
    代码块
}while(条件);

        while循环:

while(条件){
    代码块
}

当条件为true的时候循环执行,

就是当条件为true的时候执行一次然后跳出循环,再来执行while里面的条件进行判断,直到条件不为true。

PS:do-while 和 while 循环 的区别是:前者先循环后判断,后者先判断后循环。

        for循环:

                

for(初始化表达式;条件表达式;循环后的操作){
        代码块
}

例如:

for(var i = 0; i <= 10 ; i++){
        console.log(i);
}


for(外层初始化表达式;外层条件表达式;外层循环后的操作){
    for(里层初始化表达式;里层条件表达式;里层循环后的操作){
            代码块
    }
}
//外层的for循环控制循环高度(行数)
//里层的for循环控制循环宽度(列数)

ps:在做缓存的时候用false这样做判断:

if(localStorage){

alert("请升级xxxxxx");

}else{
var a = window.localStorage;

}

debugger 可以用来打断点 来查看循环的步骤。

JS的函数

  1.  js编程基本都是函数式编程,可以去解决需要重复实现的功能。
  2.  函数的定义:

  • 通过function来创建一个函数,并给这个函数取一个名字

语法:

function name(){                  //name(这里面可以有参数)
        代码块
}
name()                  //调用名字为name的这个函数

  •  通过构造函数Function来创建

var  函数名 = new  Function(参数1,参数2,···参数n,函数体);
//例如:
var hanshu = new Function("x","y",var z = x + y;return z;");
  • 函数表达式:

var 函数名 = function(参数1,参数2,参数3,···,参数n)
{
    函数体
}
//例如:
var myName = function(x,y)
{
    return x+y;
}

//调用函数

myName(3,5)
//会返回8。

自调用函数

函数表达式可以 "自调用"。

自调用表达式会自动调用。

如果表达式后面紧跟 () ,则会自动调用。

不能自调用声明的函数。

通过添加括号,来说明它是一个函数表达式:

(function() {
    var x ="我调用我自己";
})();

函数没有返回值的情况:

        函数只管执行,不会有任何的返回值。

函数有返回值的情况:

        函数执行完了之后,会返回一个值,这个值可以供我们进行使用。

形参和实参

形参:定义一个不存在实际参数的量,只是起到了一个站位的作用,形参没有个数的要求,可以有无数个,但是实际中,我们需要多少个,就定义多少个;

实参:形参没有实际的参数,实参给形参提供实际的参数,实参和形参必须一|一对应。实参的个数和形参的个数可以不一致

arguments :是所有实参的集合,通过下标来获取每一个参数,通过length获取实参的个数。arguments.callee,这个可以拿来看是不是函数。

return 只有函数才能拥有 其他都不能去使用。

function x(形参1,形参2,形参3,...形参n){
}
/*x(实参1,实参2,实参3,...实参n)
形参:定义一个不存在实际参数的量,只是起到了一个站位的作用,
形参没有个数的要求,可以有无数个,但是实际中,我们需要多少个,就定义多少个;
实参:形参没有实际的参数,实参给形参提供实际的参数,实参和形参必须一|一对应。
实参的个数和形参的个数可以不一致*/

全局和局部:

全局:在任何位置都可以去访问全局变量

局部(函数作用域):只能在当前函数中去使用

在函数中使用var去声明一个变量和不使用var 去声明一个变量是有区别的使用var是局部不适用是全局。

作用域链:

当自身没有的时候会向上依次查找直到找到就返回结果,没有就返回报错信息。

isNaN(x) 判断一个数是否是NaN。。返回的是布尔值。

x如果是特殊的非数字值NaN返回的就是true ,如果是其他的值就返回false

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值