10.19JS日记
1、函数 关键词(function)
var是js的关键字,用于声明变量,声明在内存模块完成,定义(=)是在执行模块完成
var可以在内存模块提前完成(js代码执行前),所以有变量提升这个功能
console.log(b) undefined
console.log(a) is not defined
a=12;
var b=13;
因为a没有带var,所以不存在变量提升,浏览器会把它当成window的属性(window.a=12)
function也是js的关键字,用于声明和定义函数的,声明和定义都在内存模块中同时完成,因此。函数
也有变量提升这个功能
2、函数的定义:函数是具有一定功能的代码块
函数是通过function定义的,function后边是函数名(自己取)
函数的语法结构:function(){}

通过分析图可以发现,内存模块只存var的变量名,儿函数是存整个代码块

函数的四种定义方式
<1>声明式定义 function fn(){}
<2>表达式定义var an=function(){}
匿名函数
<3>自调用 定义和调用同时完成
<4>通过对象的形式 var a=new Function{}
-函数调用 函数名()
函数最大的优势,会形成一个独立的模块,可以按需使用,可以重复使用
按需使用可以提升性能,重复使用,可以减少代码冗余
-函数调用的过程
函数执行时会形成一个自己的私有空间,最大的作用域是window,然后执行里面的代码块
-作用域链
函数内部的变量被使用时,首先会在自己的私有作用域下查找是否有这个变量,有就直接使用
没有就会向他的上一级查找,父级有就使用父级,父级没有就会继续向上查找,直到window为止
,window有就使用window,没有就is not defined,这种查找机制叫做作用域链
-函数归属谁,跟他在哪儿调用没有瓜子,而是在哪儿定义
-函数递归,函数自己调用自己
function fn(){
console.log(5)
fn()
}
fn()
-break黑人continue运算
break:终止当前运算
continue:跳出当前运算,执行下一个
return :返回的
每个函数都有一个返回值,如果函数人为return,返回什么就是什么
如果没有人为返回,结果就是undefined,并且return后面的代码不再执行了
function fn(){
console.log(12)
return=45;
}
var as=fn() fn执行后将自己的返回值undefined给as
console.log(as) undefined
console.log(as) 45 fn执行后将自己的返回值45给as,且return下的代码不再执行
函数内部的return不影响预解释
-函数外的变量叫全局变量,函数内的变量叫做私有变量,看变量归谁,就看他在哪个作用域下声明
-私有变量的种类
<1>在私有作用域下声明的
<2>通过函数传参的私有变量
-函数传参 arguments
function (a,b,c,d){}
a,b,c,d:都是参数
案例




10.19JS日记的更多相关文章
- 10.24JS日记
1.函数都有返回值,人为return,返回什么就是什么,否则,他的返回值就是undefined 而方法的本质也是函数,所以也有返回值 document.getElementById()返回的是获取的标 ...
- 10.22JS日记
1.js数据类型分析 (1)基础类型:string.number.boolean.null.undefined (2)引用类型:object-->json.array... 2.点运算 xxx ...
- 10.17JS日记
1.变量提升 变量提升是浏览器的一个功能,在运行js代码之前,浏览器会给js一个全局作用域,叫window, window分为两个模块,一个叫做内存模块,一个叫做运行模块,内存模块找到当前作用域下的 ...
- 9.10 h5日记
9.10 1.什么是属性 属性是表示某些事物的一些特征 2.属性分为标签属性和样式属性,二者的区别在于哪里 标签属性:<img src="01.jpg" width=&quo ...
- 10.31JS日记
this问题 (1)this是js的一个关键字,指定一个对象,然后替代this: 函数中的this指向行为发生的主体,函数外的this都指向window,没有意义 (2)函数内的this跟函数在什么环 ...
- 10.23JS日记
1.逻辑运算 || && ! ||:遇到第一个为true的值就中止并返回 &&:遇到第一个为false的值就中止并返回,如果没有false值,就返回最后一个不是fa ...
- 10.18JS日记
1.JS的本质就是处理数据,数据来自后台的数据库,所以变量起到了临时存储的作用, ES制定了js的数据类型 2.数据类型有哪些? (1)字符串 String (2)数字 Number (3)布尔 B ...
- 10.16JS日记
1.parseint() 2.parsefloat() 这两个单词运行的时候遇到第一个非数字就结束了 3.var a="hello word" a这个变量为字符串,每一个字母为字 ...
- 10.9h5日记
一.单位 1.px是基本的单位,像素 2.em也是一个单位,使用方式,用元素父级的字体大小乘以em前的数字,父级没有就向上一个父级找, 直到body为止,如果body没有,就用默认的字体大小16px ...
随机推荐
- Module build failed: Error: Cannot find module 'url-loader' 的坑
本文地址:http://www.cnblogs.com/jying/p/8280956.html 开发环境:react.webpack.es5 引用图片报错:Module build failed: ...
- 吴裕雄 03-mysql连接
mysqli_connect(host,username,password,dbname,port,socket);参数 描述host 可选.规定主机名或 IP 地址.username 可选.规定 M ...
- 安装 Java Cryptography Extension (JCE) Unlimited Strength
http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html cp ./* /usr/java/ ...
- vue 路由meta作用及在路由中添加props作用
vue路由meta:有利于我们处理seo的东西,我们在html中加入meta标签,就是有利于处理seo的东西,搜索引擎 在路由中传参是通过/:id传参代码如下: import Login from ' ...
- vue 中下拉select怎样给后台传递用户选择的物品id
在泰康保险公众号项目中有个问题是用户选择select中的option,要把对应的id给后台以便后台工作作出相应的效果,我是这样的 <select v-model="selectcomu ...
- 微信文档采用第三方方式打开选择qq
本篇文章主要记录解决: 微信打开文档后,----选择第三方应用打开---选择自己的项目,跳转到--列表选择界面--选择好友---然后返回到最近聊天界面,其中列表选择界面onDestroy的问题. 反编 ...
- centos 6.x系统升级glibc库至2.15版本的快速解决办法
CentOS 6.x系统升级glibc库至2.15版本的快速解决办法 1.先确保相关软件包已经安装 yum install -y glibc yum install -y glibc-common ...
- 老代码:js实现二级城市联动(MVC)
FormViewCity 为mvc控制器传给view的数据,包括一个MyCitys集合字段. <%@ Page Title="" Language="C#" ...
- python全栈 流程控制;while 循环 格式化输出 运算符 及编码
python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...
- rancher 2 安装 longhorn
宿主机为centos 7 注意一定要安装open-iscsi yum install iscsi-initiator-utils 集群--默认命名空间--目录应用--longhorn 安装