Unit03: 函数 、 分支结构_1

1.函数:

       封装一个专门任务的步骤清单的代码段

       起一个任务名

 

       when:只要定义一个专门的任务,都要封装一个函数;

      

       使用函数:声明 定义 调用;

 

       如何定义一个函数:

       function 函数名([参数列表]){

              函数体:代码段

              return 返回值

       }

 

       如何调用函数:var 返回值=函数名(参数列表);或 函数名();***********

 

       一次定义,反复使用,代码重用;

       一次修改,处处生效;

 

       -- 函数的参数:接受“传入函数内”的数据(变量);

                   when:如果一个函数必须某些数据才能正常执行;

                        参数可让函数变得更灵活

                   定义: function 函数名(变量1,变量2,变量3...){};*********

                   调用: 函数名(变量1,变量2,变量3...);

 

       -- 返回值:方法调用后返回的结果;

              function 函数名([参数列表]){

                     函数体:代码段

                     return 要返回的数据;

              }

 

          return后不加数据,单独使用,表示退出函数执行;

          函数仅负责返回值,不保存值;获取返回值:var 返回值=函数名(参数列表);document.write(返回值); **********

 

********** 函数是引用类型的对象;函数名是指向函数对象的变量;(函数名存在window,代码段存在window外的一个地址;)

         

          函数的定义和调用过程:

              1.window中创建函数名变量;

              2.window外创建了函数定义的对象-->封装函数的定义

                       函数名变量中保存了指向函数对象的地址

              3.调用时,创建局部变量:2种;

              4.调用过程中,如果局部有,就不用全局的;

                          如果局部没有,才会用全局的;

                          如果全局也没有,会报错;

              5.调用结束后,释放所有全局变量!

 

2.变量作用域:

       一个变量的可用范围;

       -- 全局作用域:一个变量可以在程序的任何位置被访问。

       -- 函数作用域:一个变量仅能在函数调用时,内部被访问。

 

       全局变量:定义在全局作用域中的变量;2种;

              1.直接在任何函数外定义的变量;

                全局变量都属于window--全局对象;

              2.无论在任何位置,为没有var声明过的变量赋值;自动创建同名全局变量;

       局部变量:定义在函数作用域中的变量;2种;

              1.函数定义内部声明的变量;

              2.参数变量也是局部变量;

 

1.声明提前:***************

       在程序执行前或函数被调用前;

       将var声明的变量和function声明的函数

       提前到“当前作用域”的顶部集中创建;

 

       仅声明提前,赋值留在原地;***************

 

2.按值传递:

       将实参变量的值复制一份副本给方法的形参变量;

 

       将 全局变量 “当参数”传给函数时,是复制了 全局变量 的值,函数内的计算不会改变 全局变量;***********

       如果函数没有参数,用了 全局变量 计算,就会“改变全局变量的值”。

       (demo4);

 

3.全局函数:ES标准中,已经定义好的,开发者直接调用的函数;

       - parseInt(str)

       - paeseFloat(str)

       - isNaN(num)

       - isFinite :判断一个数字是否有限;

              无穷大:Infinity; 4/0;

 

       - 编码,解码 (demo5)

         编码:将url中的非法字符,改为合法字符的

         - encodeURIComponent();

                     /s?word=%E5%BC%AO

                               张

                               utf-8格式编码

                               在utf-8一个汉字占3字节;

                     url中不允许出现多字节字符!(乱码)

                     用utf-8格式编码,将url中多字节字符,转为单字节;

 

                     url中不允许参数值中出现保留字:如:/

 

         解码:将url中对已编码的标符解码,恢复原文;

         - decodeURIComponent();

                 

       - eavl:计算并执行以字符串表示的表达式的值:如:算算式,解释并执行代码;(demo5)

 

4.分支结构:

       程序结构分3大类:

           1.顺序:程序默认由上向下执行;

           2.分支:根据条件判断的结果,有选择的执行不同代码;3种;(demo6)

 

              -- if 结构:1件事 满足条件就执行,否则就不执行;

                 语法:if(条件){

                            满足条件才执行的代码;

                       }

 

              -- if...else... 结构:2件事 满足条件就执行if中的代码段,不满足条件就执行else中的代码段;

                 语法:if(条件){

                            满足条件才执行的代码;

                       }else{

                            不满足条件就执行else中的代码段;

                       }

 

              -- else if 结构:多件事,根据条件, 多选一执行;

                 语法:if(条件1){

                            满足条件1才执行的代码;

                       }else if(条件2){

                            满足条件2才执行的代码;

                       }...else{

                            之前条件都不满足就执行else中的代码段;

                       }

 

                       只要一个条件满足,执行完就退出,后面的不执行;*************

 

              分支结构 VS 三目/短路 ****************** (demo7)

              如果只是返回值 -->三目/短路

              如果操作复杂   -->分支结构

 

 

           3.循环:程序可以反复执行同一代码段,到达临界时退出;

 

       需求:

       - Input

       - Process

       - Output

分支结构:

1.一个条件,一件事满足就做,不忙足不作:短路、if结构

Demo:

Var a=80,b=90;

a<b&&(a+=b,b=a-b,a-=b);//a=90,b=80,

2.一个条件两件事,二选一:三目、if else、||

3.一个条件多件事 多选一: 三目、switch case(条件全等情况下)

4.操作复杂,且条件包含不等:if elseif

用最短的代码做更多的事情;

面试题:

function Human(){

return Human;              //构造函数结尾return一个对象

}                                                      ||

var boy=new Human();//new不在创建对象,等效于Human()

var man=Human();

console.log(boy===man);

 //true

 

转载于:https://www.cnblogs.com/mbyund/p/6406690.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值