博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python web前端 07 函数及作用域
阅读量:6623 次
发布时间:2019-06-25

本文共 3717 字,大约阅读时间需要 12 分钟。

Python web前端 07 函数及作用域

一、函数

  1、有名函数和匿名函数

#函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块#函数就是包裹在花括号里面的代码块,前面使用了关键字function#分为有名函数和匿名函数#有名函数:有名字的函数,函数名加括号执行/充当事件函数执行#匿名函数:没有名字的函数,匿名函数不能单独出现,一般充当事件函数oBox.onclinck=function(){..};oBox.onclinck=fn;#这两个是一样的,后面的函数就是fn

  2、函数定义和函数表达式

#函数表达式 特点:可以在后面加括号立即执行fn();function fn{ console.log(1);}#函数定义可以在定义前加括号执行,也可以在定以后加括号执行fn();var fn=function(){console.log(2);}#通过var定义的函数,只能在后面运行#() + - ! ~ 可以将匿名函数变为函数表达式function(){alert(3);}#匿名函数+function(){alert(3);}();#前面加了+(() + - ! ~ )变为函数表达式,后面加上()便是调用(function(){alert(3);})();(function(){alert(3);}());#这两种加括号都可以

  3、实参形参

#在使用函数时,加括号导致的函数执行时,可以传递参数(形参、实参、不定参)function fn(x){    alert(x);}fn(8);#执行函数时可以传递实参【用已知的变量(形参)或者具体的数据(实参)】#形参:相当于函数局部的变量,命名规则和var相同,定义,无中生有#很多个参数的情况sum(4,9);function sum(q,w){    alert(g+w);}#形参和实参一一对应#形参和实参数量不一样的情况#实参大于形参sum(4,9,3,5);function sum(q,w,e){    alert(g+w+e);}#可以运行,最后面的实参没有用#形参大于实参sum(4,9);function sum(q,w,e){    alert(g+w+e);}#出现NaN,传参的时候依次是q=3,w=9,e=undefined#可以给形参添加默认值sum(4,9);function sum(q,w){    q=q||0;#设置默认值,q或者0    w=w||0;    alert(g+w);}

  4、不定参

sum(1,2,3,4,5,6,7,8,9,10);function sum(){    var x=0;    for(var i = 0,len=arguments.length;i

  5、返回值return

function fn(){    console.log(2);    return fn;#返回fn函数}#每个函数默认返回undefinedvar a=fn;console.log(a);

二、作用域

  1、解析顺序

#1、(定义)先解析var function参数#    a、该步骤的var只定义变量,后面的=赋值不解析#    b、该步骤的函数只定义函数,函数的执行不解析#    c、重名的只留一个、var和函数重名 函数优先#2、(执行)在自上往下执行其他代码#作用域:#作用:读写    域:范围,区域#解析:自上而下   1、找var定义函数 参数 2、执行

  2、

alert(a);var a=10;alert(a);#1、找var a=undefined==>a=10(将库里面的a替换为10)#2、执行alert(a)==>undefineda=10alert(a)==>10

  3、

alert(a);function a(){    alert(1);}alert(a);#1、找a=function a(){        alert(1);    }#2、执行alert(a);#弹出函数体#定义没调用,所以没关系alert(a);#弹出函数体

  4、

alert(a);function a(){    alert(4);}a();alert(a);#1、找a=function a(){        alert(4);    }#2、执行alert(a);#弹出函数体a();#函数调用是新的作用域,只要是作用域,解析就要分两步    #1、找 :找不到    #2、执行: alert(4);==>4alert(a);#弹出函数体

  5、

alert(a);function a(){    alert(2);}var a=520;alert(a);#1、找(函数优先)a=function a(){        alert(2);    }#2、执行alert(a);#弹出函数体a=520;alert(a);#弹出520

  6、

var a=1;function fn(){    alert(2);    var a=3;}fn();alert(a);#1、找a=undefined==》1fn=function fn(){        alert(2);        var a=3;    }#2、执行fn();#找 a=undefined       #执行:alert(2);弹出 2          #a=3alert(a);  #弹出1#上面的函数只会改变函数里面的a,外面的改变不了

  7、

var a=1;function fn(){    alert(2);    a=3;}fn();alert(a);#找a=undefinedfn=function fn(){        alert(2);        a=3;    }    #执行var a=1;#赋值afn();#找:没找到        #执行:alert(2); 弹出2        #        a=3;会去父级作用域找,从里往外找,会将外面的全局变量a赋值为3alert(a);弹出3

  8、

var a=1;function fn(a){    alert(2);    a=3;}fn();alert(a);#找a=undefinedfn=function fn(a){        alert(2);        a=3;    }#执行a=1fn();#找:a=undefined   原因是有形参的时候了会定义个a        #执行 alert(a);弹出 2        #a=3  #赋值3alert(a); #弹出1  里面的影响不了外面的

  9、

var a=1;function fn(a){    alert(2);    a=3;}fn(a);alert(a);#找a=undefinedfn=function fn(a){        alert(2);        a=3;    }#执行a=1;fn(a);#找a=undefined        #执行    fn(1);(相当于var a=1)        #alert(2);        #a=3alert(a); #弹出1

   10、

var a=function(){    alert(1);}function a(){    alert(2);}a();#找a=function a(){        alert(2);    }#执行a=function(){        alert(1);    }a();#找 :无        #执行alert(1); 弹出1

三、数据类型

  number方法

Number()  #参数中必须能被转换为数字,否则返回NaNparseInt(解析的参数)  #将参数转换位数字,只打印整数部分parseFloat()  #将参数转换位数字,不是数字就停,否则直到小数部分遇到不是数字就停Num.toFixed(n) # 四舍五入保留n位小数NaN(Not a Number) #不等于自己

  数学方法

Math #数学方法Math.pow(16,2)   #16的2次方Math.round(5.5)   #四舍五入(整数)Math.ceil(0.2)    #向上取整Math.floor(0.9)  #向下取整Math.max()      #取参数中的最大值Math.min()       #取参数中的最小值Math.random()  #0-1之间的随机数Math.random()*m+n   #n-(m+n)之间的随机数Math.PI             #  πMath.abs()        #求绝对值

 

转载于:https://www.cnblogs.com/xuchengcheng1215/p/8735386.html

你可能感兴趣的文章
thinkphp空控制器的处理
查看>>
Mahout分步式程序开发 聚类Kmeans(转)
查看>>
修改linux最大文件句柄数
查看>>
接口幂等
查看>>
LibreOffice 打开中文乱码
查看>>
FromBottomToTop第十三周项目博客
查看>>
Activity的四种启动模式
查看>>
Centos vsftpd服务器搭建
查看>>
【常用工具】常用工具收集
查看>>
Tax
查看>>
网站页面多出&65279出现空白行的原因及解决方法
查看>>
第二阶段团队冲刺站立会议06
查看>>
html
查看>>
本地wampserver如何配置伪静态
查看>>
【转载】支持向量机SVM(一)
查看>>
C#串口通信实例
查看>>
小程序数据返回时刷新当前页面数据
查看>>
MySQL数据故障时备份与恢复
查看>>
Nlopt优化函数库,用法举例
查看>>
海思 core 电压动态调整
查看>>