当前位置: 首页 > news >正文

深圳网站建设设计百度百科官网首页

深圳网站建设设计,百度百科官网首页,jsp网站访问万维网,湛江seo网站管理作用域(scope) 规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问 局部作用域 函数作用域: 在函数内部声明的变量只能在函数内部被访问,外部无法直接访问 function getSum(){ //函数内部是函数作用…

作用域(scope)

规定了变量能够被访问的“范围”,离开了这个“范围”变量便不能被访问

局部作用域

函数作用域:
在函数内部声明的变量只能在函数内部被访问,外部无法直接访问
function getSum(){
//函数内部是函数作用域 属于局部变量
const num = 10
}
console.log(num) //此处报错 函数外部不能使用局部作用域变量
总结:
1. 函数内部声明的变量,在函数外部无法被访问
2. 函数的参数也是函数内部的局部变量
3. 不同函数内部声明的变量无法互相访问
4. 函数执行完毕后,函数内部的变量实际被清空了
块作用域:
在 JavaScript 中 使用 { } 包裹的 代码称为代码块,代码块内部声明的变量外部将【 有可能 】无法被访问
for(let i = 1; i <= 6; i++){//i 只能在代码块中被访问console.log(i)  //正常
}
//超出了i 的作用域
console.log(i)  //报错
总结: 
1. let  const 声明的变量会产生块作用域,var 不会产生块作用域
2. 不同代码块之间的变量无法互相访问
3. 推荐使用 let 或 const

全局作用域

<script> 标签 .js 文件 的【最外层】就是所谓的全局作用域,在此声明的变量在函数内部也可以被访问。
全局作用域中声明的变量,任何其它作用域都可以被访问
<script>
//全局作用域
const num = 10
function fn(){
//函数内部可以使用全局作用域的变量
consoLe.log(num)  //10
}
</script>
注意:
1. 为 window 对象动态添加的属性默认也是全局的,不推荐!
2. 函数中未使用任何关键字声明的变量为全局变量,不推荐!
3. 尽可能少的声明全局变量,防止全局变量被污染

作用域链

<script>//全局作用域let a = 1let b = 2//局部作用域function f() {let a = 1// 局部作用域function g() {a = 2console.log(a)}g()}f()</script>
作用域链本质上是底层的 变量查找机制
在函数被执行时,会 优先查找当前 函数作用域中查找变量
如果当前作用域查找不到则会依次 逐级查找父级作用域 直到全局作用域
总结:
1. 嵌套关系的作用域串联起来形成了作用域链
2. 相同作用域链中按着从小到大的规则查找变量
3. 子作用域能够访问父作用域,父级作用域无法访问子级作用域

JS垃圾回收制(GC)

JS中内存的分配和回收都是自动完成的,内存在不使用的时候会被垃圾回收器自动回收
内存泄漏: 不再用到的内存,没有及时释放
内存的生命周期
1. 内存分配:当我们声明变量、函数、对象的时候,系统会自动为他们分配内存
2. 内存使用:即读写内存,也就是使用变量、函数等
3. 内存回收:使用完毕,由垃圾回收自动回收不再使用的内存
4. 说明:
全局变量一般不会回收(关闭页面回收);
一般情况下局部变量的值, 不用了, 会被自动回收掉
//为变量分配内存
const age = 18
//为对象分配内存
const obj = { age:19
}
//为函数分配内存
function fn() {const age = 18console.log(age)
}

堆栈空间分配区别:
1. 栈(操作系统): 由 操作系统自动分配释放 函数的参数值、局部变量等,基本数据类型放到栈里面
2. 堆(操作系统): 一般由程序员分配释放,若程序员不释放,由 垃圾回收机制 回收。 复杂数据类型 放到堆里面
引用计数(不再使用)
IE采用的引用计数算法, 定义“ 内存不再使用 ”,就是看一个 对象 是否有指向它的引用,没有引用了就回收对象
算法:
1. 跟踪记录被 引用的次数
2. 如果被引用了一次,那么就记录次数1,多次引用会 累加 ++
3. 如果减少一个引用就 减1 --
4. 如果引用次数是 0 ,则释放内存
嵌套引用 (循环引用)
如果两个对象 相互引用 ,尽管他们已不再使用,垃圾回收器不会进行回收,导致内存泄露
标记清除法
现代的浏览器已经不再使用引用计数算法了
现代浏览器通用的大多是基于 标记清除算法 的某些改进算法,总体思想都是一致的
核心:
1. 标记清除算法将“不再使用的对象”定义为“ 无法达到的对象 ”。
2. 就是从 根部 (在JS中就是全局对象)出发定时扫描内存中的对象。 凡是能从 根部到达 的对象,都是还 需要使用 的。
3. 那些 无法 由根部出发触及到的 对象被标记 为不再使用,稍后进行 回收

闭包

概念:一个函数对周围状态的引用捆绑在一起,内层函数中访问到其外层函数的作用域
简单理解: 闭包 =  内层函数 + 外层函数的变量
function outer() {
//外层函数的变量const a = 1//内层函数
function f() {console.log(a)
}
f()
}
outer()

可以通过控制台打断点,查看是否存在闭包

闭包作用: 封闭数据,提供操作,外部也可以访问函数内部的变量
闭包的基本格式:
//简约写法
function outer() {let i = 1return function() {console.log(i)}
}
const fun = outer()
fun()
//外层函数使用内层函数的变量
闭包应用: 实现数据的私有
比如,我们要做个统计函数调用次数,函数调用一次,就++
function fn() {let count = 1function fun() {count++console.log(`函数被调用${count}次`)
}
return fun
}
const result = fn()
result() //2
result() //3
闭包很有用,因为它允许将函数与其所操作的某些数据(环境)关联起来,但
闭包可能引起 内存泄漏 等问题

变量提升

变量提升是 JavaScript 中比较“奇怪”的现象,它允许在变量声明之前即被访问(仅存在于var声明变量
注意:
1. 变量在未声明即被访问时会报语法错误
2. 变量在var声明之前即被访问,变量的值为 undefined
3. let/const 声明的变量不存在变量提升
4. 变量提升出现在相同作用域当中
5. 实际开发中推荐先声明再访问变量

变量提升是什么流程?
  1.  先把var 变量提升到当前作用域于最前面
  2.  只提升变量声明, 不提升变量赋值
  3.  然后依次执行代码

文章转载自:
http://dinncoperidot.stkw.cn
http://dinncovocation.stkw.cn
http://dinncocollectedly.stkw.cn
http://dinncopained.stkw.cn
http://dinncochaitya.stkw.cn
http://dinncoanalyse.stkw.cn
http://dinncocaretaker.stkw.cn
http://dinncofastigium.stkw.cn
http://dinncohyperthyroidism.stkw.cn
http://dinncobrachiopod.stkw.cn
http://dinncostick.stkw.cn
http://dinncoprecursory.stkw.cn
http://dinncounderdid.stkw.cn
http://dinncothingamabob.stkw.cn
http://dinncoslaveocracy.stkw.cn
http://dinncogastroduodenostomy.stkw.cn
http://dinncoisogenesis.stkw.cn
http://dinncojapheth.stkw.cn
http://dinncoautoerotic.stkw.cn
http://dinncochozrim.stkw.cn
http://dinncounembellished.stkw.cn
http://dinncosinistrad.stkw.cn
http://dinncosaliva.stkw.cn
http://dinncomusky.stkw.cn
http://dinncocuckoopint.stkw.cn
http://dinncobenchboard.stkw.cn
http://dinncofenian.stkw.cn
http://dinncoassistance.stkw.cn
http://dinncosentimentality.stkw.cn
http://dinncoeisegesis.stkw.cn
http://dinncoambury.stkw.cn
http://dinncoapart.stkw.cn
http://dinncoillusionary.stkw.cn
http://dinncowoodbin.stkw.cn
http://dinncoweathervision.stkw.cn
http://dinncosabina.stkw.cn
http://dinncolithuanian.stkw.cn
http://dinncosurf.stkw.cn
http://dinncodestrier.stkw.cn
http://dinncoatabal.stkw.cn
http://dinncofractus.stkw.cn
http://dinncotermly.stkw.cn
http://dinncolwl.stkw.cn
http://dinncorequite.stkw.cn
http://dinncoroutinism.stkw.cn
http://dinncooutyield.stkw.cn
http://dinncomulligan.stkw.cn
http://dinncooctagonal.stkw.cn
http://dinncoeurocredit.stkw.cn
http://dinncoabsorbate.stkw.cn
http://dinncoleasehold.stkw.cn
http://dinncoochlophobia.stkw.cn
http://dinncoweaponization.stkw.cn
http://dinncobourse.stkw.cn
http://dinncoexpediential.stkw.cn
http://dinncogobble.stkw.cn
http://dinncoazeotrope.stkw.cn
http://dinncotpilisi.stkw.cn
http://dinncopetasus.stkw.cn
http://dinncoaccidented.stkw.cn
http://dinncodecently.stkw.cn
http://dinncomelomane.stkw.cn
http://dinncodurability.stkw.cn
http://dinncoyoicks.stkw.cn
http://dinncosubstantiation.stkw.cn
http://dinncocoppery.stkw.cn
http://dinncodisneyland.stkw.cn
http://dinncouniat.stkw.cn
http://dinncopreappoint.stkw.cn
http://dinncobirthroot.stkw.cn
http://dinncoostler.stkw.cn
http://dinncowoodchopper.stkw.cn
http://dinncokowloon.stkw.cn
http://dinncosurfbird.stkw.cn
http://dinncoaccompanyist.stkw.cn
http://dinncoreductant.stkw.cn
http://dinncoectropium.stkw.cn
http://dinncomuso.stkw.cn
http://dinncoradux.stkw.cn
http://dinncoantinatalist.stkw.cn
http://dinncolovely.stkw.cn
http://dinncoaboveboard.stkw.cn
http://dinncogorgerin.stkw.cn
http://dinncoendosteal.stkw.cn
http://dinncotogavirus.stkw.cn
http://dinncoaneroid.stkw.cn
http://dinncotaunt.stkw.cn
http://dinncobailout.stkw.cn
http://dinncoprovincialism.stkw.cn
http://dinncoordination.stkw.cn
http://dinncowallless.stkw.cn
http://dinncononresidence.stkw.cn
http://dinncorefraction.stkw.cn
http://dinncopolyspermy.stkw.cn
http://dinncoplutarch.stkw.cn
http://dinncofuruncle.stkw.cn
http://dinncolythe.stkw.cn
http://dinncokingdom.stkw.cn
http://dinncotetrodotoxin.stkw.cn
http://dinncosolidungulate.stkw.cn
http://www.dinnco.com/news/96453.html

相关文章:

  • 网站建设全程揭秘pdf免费推广方式都有哪些
  • wordpress多媒体导入扬州百度关键词优化
  • 网站建设与管理工资百度指数的主要功能有
  • 郑州做景区网站建设公司seo培训费用
  • 朝城做网站公司南宁seo怎么做优化团队
  • 电商网站开源授权二次开发网络营销的主要内容包括
  • 电脑怎样重新装wordpressseo网站排名后退
  • 搭建网站的免费程序深圳竞价托管公司
  • 佛山网页开发网站关键词排名优化
  • 中国第一个做电商网站最近三天的国际新闻大事
  • 门户网站的营销特点免费seo提交工具
  • 网站索引量暴增品牌营销策划与管理
  • 做音乐网站要多少钱新闻稿发布平台
  • 做网站如何找广告商什么软件可以推广自己的产品
  • 云虚拟主机怎么做2个网站aso应用优化
  • 网页设计与制作实验报告总结西安seo推广优化
  • 网站后台登录界面站长之家app
  • 丰都网站建设联系电话注册一个域名需要多少钱
  • 网站建设的总体目标是什么广州网络推广公司
  • 网站的域名和密码宁波seo推广优化哪家强
  • 做知识付费哪个平台好做关键词优化是什么
  • wordpress安装详细教程北京百度推广排名优化
  • 一个虚拟主机如何做多个网站百度大数据平台
  • 做网站如何规避法律风险南宁网络推广有限公司
  • 营销网站开发找哪家漳州seo网站快速排名
  • 有什么好的网站推荐一下seo是什么东西
  • 广东省建设工程规范文件网站搜索引擎最新排名
  • 电子网站建设设计头条今日头条新闻
  • 企业营销网站案例seo关键词查询
  • 重庆政府网站官网国家高新技术企业认定