Python web前端 07 函数及作用域
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<len;i++){
- x+=arguments[i];#将每个参数相加
- }
- console.log(x);
- }
5、返回值return
- function fn(){
- console.log(2);
- return fn;#返回fn函数
- }#每个函数默认返回undefined
- var 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)==>undefined
- a=10
- alert(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);==>4
- alert(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==》1
- fn=function fn(){
- alert(2);
- var a=3;
- }
- #2、执行
- fn();#找 a=undefined
- #执行:alert(2);弹出 2
- #a=3
- alert(a); #弹出1#上面的函数只会改变函数里面的a,外面的改变不了
7、
- var a=1;
- function fn(){
- alert(2);
- a=3;
- }
- fn();
- alert(a);
- #找
- a=undefined
- fn=function fn(){
- alert(2);
- a=3;
- }
- #执行
- var a=1;#赋值a
- fn();#找:没找到
- #执行:alert(2); 弹出2
- # a=3;会去父级作用域找,从里往外找,会将外面的全局变量a赋值为3
- alert(a);弹出3
8、
- var a=1;
- function fn(a){
- alert(2);
- a=3;
- }
- fn();
- alert(a);
- #找
- a=undefined
- fn=function fn(a){
- alert(2);
- a=3;
- }
- #执行
- a=1
- fn();#找:a=undefined 原因是有形参的时候了会定义个a
- #执行 alert(a);弹出 2
- #a=3 #赋值3
- alert(a); #弹出1 里面的影响不了外面的
9、
- var a=1;
- function fn(a){
- alert(2);
- a=3;
- }
- fn(a);
- alert(a);
- #找
- a=undefined
- fn=function fn(a){
- alert(2);
- a=3;
- }
- #执行
- a=1;
- fn(a);#找a=undefined
- #执行 fn(1);(相当于var a=1)
- #alert(2);
- #a=3
- alert(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() #参数中必须能被转换为数字,否则返回NaN
- parseInt(解析的参数) #将参数转换位数字,只打印整数部分
- 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() #求绝对值
Python web前端 07 函数及作用域的更多相关文章
- Python web前端 05 JavaScript
Python web前端 05 JavaScript 一.获取元素 1.初识JavaScript /* .. */ #这是多行注释 // #这是单行注释 #JavaScript是一种脚本语言,是一种动 ...
- Python web前端 06 运算符 循环
Python web前端 06 运算符 循环 一.运算符 #JS六大数据类型 #number 数字 #string 字符串 #boolean 布尔型 #function 函数 #undefined 未 ...
- Python web前端 09 jQuery
Python web前端 09 jQuery 一.三个重要网址 http://jquery.cuishifeng.cn/ #中文查询网站 http://www.bootcdn.cn/ #引入jq ht ...
- Python web前端 08 字符串 数组 json
Python web前端 08 字符串 数组 json 一.string #string 字符串 #索引 下标 偏移量 ---从0开始 str[index]; #通过索引取字符串 可读不可写 str. ...
- Python web前端 01 HTML常用标签
Python web前端 01 HTML常用标签 一.HTML创建项目 file ---->new project -----> 输入项目名------>创建文件夹 new dicr ...
- Python web前端 02 CSS
Python web前端 02 CSS 一.选择器 1.CSS的几种样式(CSS用来修饰.美化网页的) #建立模板 复制内容--->SETTING---> Editor -----> ...
- Python web前端 03 CSS属性
Python web前端 03 CSS属性 一.文字.文本属性 1.文字属性 font-family #字体类型浏览器默认的字体是微软雅黑,字体中有多个字体的时候,如果前面的字体没有就使用后面的字体 ...
- Python web前端 04 盒子模型
Python web前端 04 盒子模型 盒子模型是由内容(content).内边距(padding).外边距(margin).边框(border)组成的 一.边框 border #border 边框 ...
- Python web前端 11 form 和 ajax
Python web前端 11 form 和 ajax 一.打开服务器 将handlers.py.httpd.py和libs.py三个文件放入新文件夹中,双击打开httpd.py文件即可 二.ajax ...
随机推荐
- js 事件冒泡、事件捕获及事件委托
简介 事件冒泡:从触发事件的节点一直到document,自下而上的去触发事件. 事件捕获:从document到触发事件的节点,自上而下的去触发事件. 事件委托:事件委托就是利用事件冒泡,只指定一个事件 ...
- 刷题向》POJ2823 单调队列裸题(<不会做,请自裁>系列)
最近BZOJ炸了,而我的博客上又更新了一些基本知识,所以这里刷一些裸题,用以丰富知识性博客 POJ2823 滑动的窗口 这是一道经典的单调队题,我记得我刚学的时候就是用这道题作为单调队列的例题,算 ...
- 32.GROUP BY
合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句. GROUP BY 语句 GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组. SQL GROUP BY 语法 ...
- 如果你的资源贫乏,那么专注做好一件事将是你的唯一出路(no reading yet)
http://www.jianshu.com/p/8784f0fd7ab8/comments/1161511
- JPA注解解析
最近学习hibernate注解形式配置POJO类,将注解的解析记下来,以备以后使用. 例1. @Entity@Table(name="user") public class Fl ...
- 一些webGL地球的网址
测试浏览器的webgl支持情况:https://browserleaks.com/webgl 或者 https://github.com/AnalyticalGraphicsInc/webglrepo ...
- Android 基于google Zxing实现对手机中的二维码进行扫描
转载请注明出处:http://blog.csdn.net/xiaanming/article/details/14450809 有时候我们有这样子的需求,需要扫描手机中有二维码的的图片,所以今天实现的 ...
- PrintDocument or PrintPreviewDialog 打印
/// <summary> /// /// </summary> /// <param name="sender"></param> ...
- c# 求数组的最大值
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- vs2017安装后自动应用许可证
Vs2017专业版 "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\StorePI ...