浅谈JS封闭函数、闭包、内置对象


Posted in Javascript onJuly 18, 2017

一、变量作用域指的是变量的作用范围,javascript中的变量分为全局变量和局部变量

1、全局变量:在函数之外定义的变量,为整个页面公用,函数的内部外部都可以访问。

2、局部变量:在函数内部定义的变量,只能在定义该变量的函数内部访问,外部无法访问。函数内部访问变量时,先在内部查找是否有此变量,如果有,就使用内部,如果没有,就去外部查找

浅谈JS封闭函数、闭包、内置对象

浅谈JS封闭函数、闭包、内置对象

二、封闭函数封闭函数是javascript中匿名函数的另外一种写法,创建一个一开始就执行而不用命名的函数。

1、一般函数的定义和执行函数

2、封闭函数的定义和执行:(function(){...})();还可以在函数定义前加上"~"或者"!"符号来定义匿名函数。

浅谈JS封闭函数、闭包、内置对象

三、闭包

闭包就是函数嵌套函数,内部函数可以引用外部函数的参数和变量,参数和变量不会被垃圾回收机制收回

浅谈JS封闭函数、闭包、内置对象

1、闭包用途1:将一个变量长期驻扎在内存当中,可用于循环中存索引值

浅谈JS封闭函数、闭包、内置对象

2、闭包用途2:私有变量计数器,外部无法访问,避免全局变量的污染

浅谈JS封闭函数、闭包、内置对象

四、内置对象1、document

比如说在商品详情页观看时,想去购买,这是会跳转到登录页面,登录成功后使用该方法跳转到商品详情页

document.referrer//获取上一个跳转页面的地址(需要服务器环境)

浅谈JS封闭函数、闭包、内置对象

2、location

a、window.location.href // 获取或者重定url地址

浅谈JS封闭函数、闭包、内置对象

b、window.location.search //获取地址参数部分

浅谈JS封闭函数、闭包、内置对象

c、window.location.hash //获取页面锚点或者哈希值

浅谈JS封闭函数、闭包、内置对象

3、Math

a、Math.random 获取0-1的随机值

浅谈JS封闭函数、闭包、内置对象

b、Math.floor 向下取整

浅谈JS封闭函数、闭包、内置对象

c、Math.ceil 向上取整

浅谈JS封闭函数、闭包、内置对象

以上这篇浅谈JS封闭函数、闭包、内置对象就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
给事件响应函数传参数的四种方式小结
Dec 05 Javascript
js中浮点型运算BUG的解决方法说明
Jan 06 Javascript
js+HTML5基于过滤器从摄像头中捕获视频的方法
Jun 16 Javascript
JavaScript encodeURI 和encodeURIComponent
Dec 04 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
Sep 02 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
Apr 16 Javascript
认识less和webstrom的less配置方法
Aug 02 Javascript
通过JS深度判断两个对象字段相同
Jun 14 Javascript
layui 地区三级联动 form select 渲染的实例
Sep 27 Javascript
vue实现计算器功能
Feb 22 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
Aug 10 Javascript
iscroll实现下拉刷新功能
Jul 18 #Javascript
vue.js实现单选框、复选框和下拉框示例
Jul 18 #Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
Jul 18 #Javascript
iscroll.js滚动加载实例详解
Jul 18 #Javascript
基于iScroll实现下拉刷新和上滑加载效果
Jul 18 #Javascript
jQuery remove()过滤被删除的元素(推荐)
Jul 18 #jQuery
H5基于iScroll实现下拉刷新和上拉加载更多
Jul 18 #Javascript
You might like
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
laravel请求参数校验方法
2019/10/10 PHP
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
jquery的ajax()函数传值中文乱码解决方法介绍
2012/11/08 Javascript
javascript检查表单数据是否改变的方法
2013/07/30 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
javascript深拷贝和浅拷贝详解
2017/02/14 Javascript
layui实现给某一列加点击事件
2019/10/26 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
详解Vue3中对VDOM的改进
2020/04/23 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
Python实现建立SSH连接的方法
2015/06/03 Python
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
查看keras各种网络结构各层的名字方式
2020/06/11 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
linux面试题参考答案(10)
2016/10/26 面试题
汽车销售求职自荐信
2013/10/01 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
运动会开幕式主持词
2014/03/28 职场文书
民事诉讼代理授权委托书
2014/10/11 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
MySQL创建定时任务
2022/01/22 MySQL