博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript的3大组成部分&&ECMAScript函数&&闭包
阅读量:7099 次
发布时间:2019-06-28

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

1.JavaScript实现是由ECMAScript、DOM和BOM组成。

a.ECMAScript仅仅是一个描述,定义了脚本语言的所有属性、方法和对象.
b.DOM[文档对象模型]是HTML和XML的应用程序接口,DOM将把整个页面规划成由节点层级构成的文档。
c.BOM[浏览器对象模型]可以对浏览器窗口进行访问和操作。

JS对象有:Array Boolean Date Math Number String RegExp Functions Events

Browser对象有:Window Navigator Screen History Location
DOM对象有:Document Element AttributeEvent

2.ECMAScript函数

a. arguments对象,无需明确指出参数名,就能访问参数。
1)比如:
function a(a){
alert(arguments[0]);
}
a(1);
执行结果将是弹出框显示1;
2)ECMAScript不会验证传递给函数的参数个数是否等于函数定义的参数个数。
比如:
function a(a,b){
alert(arguments[0]);
}
只传一个参数仍然正常执行。
a(1);
3)检测函数的参数个数 用arguments.length

b.Function 对象

ECMAScript 的函数实际上是功能完整的对象。

  

3.闭包

由于Javascript语言特有的"链式作用域"结构,
有个问题:函数外部无法读取函数内的局部变量
怎么实现:在函数内部,再定义一个函数

  

其实 a2 可以写成 a2 = function(){},也就是说a2被赋给了一个全局变量,a2始终在内存中,a1是a2的父函数,所以a1也一直在内存中,不会在调用结束后,被垃圾回收机制回收。

总结:
1.闭包会使得函数中的变量都被保存在内存中。
2.闭包会在父函数外部,改变父函数内部变量的值。

转载于:https://www.cnblogs.com/lzs-888/p/6090301.html

你可能感兴趣的文章
SQL变量与全局变量
查看>>
通达OA 小飞鱼开发培训第四讲 工作流介绍(图文)
查看>>
PhoneGap_百度百科
查看>>
bootstrap基础学习六篇
查看>>
[.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)...
查看>>
Android横竖屏切换及其相应布局载入问题
查看>>
带辉光效果的跑马灯
查看>>
CSS隐藏元素的几个方法(display,visibility)的区别
查看>>
HTML 中的 dl(dt,dd)、ul(li)、ol(li)
查看>>
Linux下Redis主从复制以及SSDB主主复制环境部署记录
查看>>
如何让win10实现关机确认-暂没确认
查看>>
常用js函数整理--common.js
查看>>
java内存泄漏与内存溢出
查看>>
分布式与集群
查看>>
互联网服务器的实现过程需要考虑哪些安全问题 & 加解密及哈希知识点
查看>>
sql server2008给数据表,字段,添加修改注释
查看>>
meta标签清理缓存
查看>>
【数据结构】二叉树
查看>>
onvif开发之设备发现功能的实现--转
查看>>
虚拟机下linux迁移造成MAC地址异常处理办法
查看>>