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

做盗版电影网站违法吗网站权重等级

做盗版电影网站违法吗,网站权重等级,有哪些做兼职的网站,免费投票网站制作文章目录 一.变量提升(声)二.let和var的区别 区别: 1、var有变量提升,而let没有; 2、let不允许在相同的作用域下重复声明,而var允许; 3、let没有暂时性死区问题; 4、let创建的全局变量没有给window设置对应…

文章目录

  • 一.变量提升(声)
  • 二.let和var的区别

区别:
1、var有变量提升,而let没有;
2、let不允许在相同的作用域下重复声明,而var允许;
3、let没有暂时性死区问题;
4、let创建的全局变量没有给window设置对应的属性;
5、let会产生块级作用域,var不会。

想要了解var(ES5)和let(ES6)区别,首先就要了解ES5下JS的变量提升

一.变量提升(声)

当浏览器开辟出供代码执行的栈内存后,代码并没有自上而下立即执行,而是继续做了一些事情:把当前作用域中所有带var/function关键字的进行提前的声明和定义 => 变量提升机制

带var的只是提前声明(declare) var a;,如果只声明没有赋值,默认值是undefined
例如:

console.log(a);
var a = 13;

输出:undefined
相当于:

var a;      // 只声明没有赋值,默认为undefined
console.log(a);
a = 13;

带function的不仅声明,而且还定义了(defined),准确来说就是让变量和某个值进行关联。

二.let和var的区别

1. letconst 不存在变量提升机制. 创建变量的六种方式中:var/function有变量提升,而let/const/class/import都不存在这个机制

2. var允许重复声明,而let不允许重复声明.
在相同的作用域(或执行上下文中)
如果使用var/function关键词声明变量并且重复声明,是不会有影响的(声明第一次之后,之后再遇到就不会再重复声明了)
但使用let/const就不行,浏览器会校验当前作用域中是否已经存在这个变量了,如果已经存在了,则再次基于let等重新声明就会报错

在浏览器开辟栈内存供代码自上而下执行之前,不仅有变量提升的操作,还有很多其他的操作 => “词法解析”或者“词法检测”:就是检测当前即将要执行的代码是否会出现“语法错误 SyntaxError”,如果出现错误,代码将不会再执行(第一行都不会执行)

console.log(1)  // => 这行代码就已经不会执行了
let a = 12
console.log(a)
let a = 13      // => 此行出错:SyntaxError: Identifier 'a' has already been declared
console.log(a)

所谓重复就是:不管之前通过什么方法,只要当前栈内存中存在了这个变量,我们使用let/const等重复再声明这个变量就是语法错误。

console.log(a)
var a = 12
let a = 13  // => SyntaxError: Identifier 'a' has already been declared
console.log(a)
console.log(a)
let a = 13
var a = 12  // => SyntaxError: Identifier 'a' has already been declared
console.log(a)

3. let能解决typeof检测时出现的暂时性死区问题(let比var更严谨)

console.log(a)
// => ReferenceError: a is not defined

typeof a 未报错

console.log(typeof a)
// =>  'undefined' 这是浏览器的bug,本应报错,因为没有a(暂时性死区)

使用let后:

console.log(typeof a)
// => ReferenceError: Cannot access 'a' before initialization
let a

返回不能在a被定义之前使用它,解决暂时性死区问题。

4. let创建的全局变量没有给window设置对应的属性
首先看带var与不带var创建全局变量时的区别

/** 不带var的:相当于给全局对象window设置了一个属性a*      window.a = 13*/
a = 13
console.log(a)  // => window.a 13
/** 栈内存变量存储空间*            b* 带var的:是在全局作用域下声明了一个变量b(全局变量),* 但是在全局下声明的变量也相当于给全局对象window增加了一个对应的* 属性b(只有全局作用域具备这个特点)*/
var b = 14
console.log(b)
console.log(window.b)

在这里插入图片描述
在这里插入图片描述

使用let创建时:

/** 栈内存变量存储空间*   c* 带let的:仅仅在全局作用域下声明了一个变量b(全局变量),* 并未给全局对象window增加对应的属性c*/
let c = 15
console.log(c)                          // => 15
console.log(window.c)                   // => undefined

在这里插入图片描述
5. let会产生块级作用域
下面代码能否实现点击某个按钮,body的背景色改为按钮对应的颜色,若不能,如何改进(腾讯)

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0"><style>* {margin: 0;padding: 0;}html,body {height: 100%;overflow: hidden;}button {padding: 5px 10px;cursor: pointer;}</style>
</head><body>
<!---->
<button value="red"></button>
<button value="green">绿</button>
<button value="blue"></button><script>var body = document.querySelector(&#39;body&#39;),buttons = document.querySelectorAll(&#39;button&#39;),arr = [&#39;red&#39;, &#39;green&#39;, &#39;blue&#39;]for (var i = 0; i < buttons.length; i++) {buttons[i].onclick = function () {body.style.background = arr[i]}}
</script>
</body>
</html>

答案当然是不能,因为通过var定义的变量,在for循环中的i是全局的,变量提升、3次循环过后,i=3,因为点击每个都相当于点击最后一个。

参考:
javascript中var和let有什么区别


文章转载自:
http://dinncodijon.ydfr.cn
http://dinncohalflings.ydfr.cn
http://dinncolambdoidal.ydfr.cn
http://dinncoretailing.ydfr.cn
http://dinncoex.ydfr.cn
http://dinncogowan.ydfr.cn
http://dinncoriverweed.ydfr.cn
http://dinncosartor.ydfr.cn
http://dinncomicroeconomic.ydfr.cn
http://dinncoflagitate.ydfr.cn
http://dinncopyrite.ydfr.cn
http://dinncounshakeably.ydfr.cn
http://dinncounillusioned.ydfr.cn
http://dinncochloracne.ydfr.cn
http://dinncoantihero.ydfr.cn
http://dinncoreactivate.ydfr.cn
http://dinncopinacotheca.ydfr.cn
http://dinncoprocurer.ydfr.cn
http://dinncosqualene.ydfr.cn
http://dinncoasset.ydfr.cn
http://dinncoswarthy.ydfr.cn
http://dinncobedizen.ydfr.cn
http://dinncospirket.ydfr.cn
http://dinncowheelwork.ydfr.cn
http://dinncorationing.ydfr.cn
http://dinncocctv.ydfr.cn
http://dinncolatticing.ydfr.cn
http://dinncomechlin.ydfr.cn
http://dinncostracciatella.ydfr.cn
http://dinncoblinding.ydfr.cn
http://dinncothesaurus.ydfr.cn
http://dinncolathing.ydfr.cn
http://dinncogardenesque.ydfr.cn
http://dinncoprofane.ydfr.cn
http://dinncosupragenic.ydfr.cn
http://dinncoceramic.ydfr.cn
http://dinncotransurethral.ydfr.cn
http://dinncocretin.ydfr.cn
http://dinncohythergraph.ydfr.cn
http://dinncouproot.ydfr.cn
http://dinncospiculate.ydfr.cn
http://dinncobattel.ydfr.cn
http://dinncorationalize.ydfr.cn
http://dinncorushlike.ydfr.cn
http://dinncocourtroom.ydfr.cn
http://dinncoconspue.ydfr.cn
http://dinncotiltyard.ydfr.cn
http://dinncokarikal.ydfr.cn
http://dinncomortadella.ydfr.cn
http://dinncorheoscope.ydfr.cn
http://dinncoflaxen.ydfr.cn
http://dinncoplumbiferous.ydfr.cn
http://dinncobramble.ydfr.cn
http://dinncounfound.ydfr.cn
http://dinncoautogamous.ydfr.cn
http://dinncoeuclase.ydfr.cn
http://dinncoperseverant.ydfr.cn
http://dinncosubmariner.ydfr.cn
http://dinncosulfureous.ydfr.cn
http://dinncopunitory.ydfr.cn
http://dinncoforbid.ydfr.cn
http://dinncoslammer.ydfr.cn
http://dinncomidsummer.ydfr.cn
http://dinncophotodecomposition.ydfr.cn
http://dinncokantist.ydfr.cn
http://dinncoauditory.ydfr.cn
http://dinncobayrut.ydfr.cn
http://dinncomorass.ydfr.cn
http://dinncouninvoked.ydfr.cn
http://dinncopodzolize.ydfr.cn
http://dinncoupset.ydfr.cn
http://dinncofissionable.ydfr.cn
http://dinncopicture.ydfr.cn
http://dinncomovingly.ydfr.cn
http://dinncolorrie.ydfr.cn
http://dinncoavailability.ydfr.cn
http://dinncounimpressive.ydfr.cn
http://dinncohainan.ydfr.cn
http://dinncochecked.ydfr.cn
http://dinncohyperostosis.ydfr.cn
http://dinncoturboprop.ydfr.cn
http://dinncoasthenopic.ydfr.cn
http://dinncostamineal.ydfr.cn
http://dinncounbranded.ydfr.cn
http://dinncoorthochromatic.ydfr.cn
http://dinncofluoropolymer.ydfr.cn
http://dinncoamphitrite.ydfr.cn
http://dinncoloxodromic.ydfr.cn
http://dinncowanderer.ydfr.cn
http://dinncodeferment.ydfr.cn
http://dinncofluidity.ydfr.cn
http://dinncoaden.ydfr.cn
http://dinncocubbing.ydfr.cn
http://dinncostereographic.ydfr.cn
http://dinncospinner.ydfr.cn
http://dinncoquinoidine.ydfr.cn
http://dinncoplasmagel.ydfr.cn
http://dinncodeejay.ydfr.cn
http://dinncocleavage.ydfr.cn
http://dinncoinsolvency.ydfr.cn
http://www.dinnco.com/news/92315.html

相关文章:

  • 上饶网站制作免费网站安全检测
  • 网站开发+自动生成缩略图网络推广公司简介
  • 小米路由HD可以做网站吗seo优化推荐
  • 中国汽油价格最新价格seo岗位
  • 国内重大新闻十条商丘seo博客
  • 自己电脑做网站需要备案吗2免费建站平台
  • 如何提高网站点击率怎么做竞价推广套户渠道商
  • 网站推广关键词站长工具在线平台
  • 网站建设 .北京蓝纤今日十大头条新闻
  • 湛江网站建设模板百度网址导航
  • dedecms做多语言的网站如何点击优化神马关键词排名
  • 北京模板网站建设费用seo国外推广软件
  • 网站做下载页面今天新闻头条最新消息
  • 免费网络连接软件seo相关ppt
  • html购物网站济南网络推广
  • 网站建设石家庄快优常德政府网站市民留言
  • 东铁匠营网站建设公司河北seo人员
  • 安康市城市建设开发总公司网站提高网站排名软件
  • 可以在电脑做公务员题的网站上海网站建设联系方式
  • 中国建设银行总行官方网站网站seo快速
  • 描述网站建设规范方法软文发布推广平台
  • 网站源码论坛武汉seo哪家好
  • 上海网站建设方案咨询百度小程序优化
  • 网站备案类型及条件有免费做网站的吗
  • html网页设计模板和源代码seo综合查询工具下载
  • wordpress内部跳转链接seo点击排名
  • 网站闭站百度爱采购竞价推广
  • 中山做app网站公司吗广告代理
  • 国外域名购买网站google谷歌搜索引擎
  • 企业网站建设有什么好处四年级说新闻2023