星空网 > 软件开发 > Java

菜鸟入门指南?JS变量的优先级

  什么是优先级?就像css中的选择器,谁的权重越高,那么最终作用的就是谁,在js中变量也是有优先级的。

var a = 10;function a(){  console.log(1);}a(); //Uncaught TypeError: a is not a function

  这里为什么报错,因为变量a被函数a给覆盖了,因为函数的声明比变量的声明更早,其实这和变量声明提前有关系,如果你对这个感兴趣可以看js中的执行上下文,菜鸟入门基础。这篇文章

var a = 10;function fn1(a){  console.log(a);}fn1(2); //2

  函数中形参的优先级大于全局变量。

var a = 10;function fn1(a){  var a = 5;  console.log(a);}fn1(2); //5

  函数中的变量优先级大于函数的形参,实际上这里的形参被函数中的变量a给覆盖了,不相信我们来看这段代码。

function fn1(a){  a = 5;  console.log(a);}fn1(2); //5console.log(a); //a is not defined

  如果说函数中的变量a没有把函数中的形参a给覆盖的话,那么我们在函数中没有加var声明的就是全局变量,那么如果是全局变量的话,那么我们在外部打印这个变量a应该是正确的才对,但是这里却说a没有定义,使用可以说明函数中的变量a被形参给覆盖了。

function fn1(a){  var a = 5;  function a(){    alert('追梦子');  }  console.log(a); //5}fn1(2);

  虽然fn中的函数a在变量a之后定义的,但是因为函数的声明比变量的声明提前所以函数a依然被变量a给覆盖了,所以打印的就是5




原标题:菜鸟入门指南?JS变量的优先级

关键词:JS

JS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

金华专线物流:https://www.goluckyvip.com/tag/34748.html
金开宇国际货运代理:https://www.goluckyvip.com/tag/34749.html
金牌卖家:https://www.goluckyvip.com/tag/34750.html
金融App:https://www.goluckyvip.com/tag/34751.html
金融分析师报考条件:https://www.goluckyvip.com/tag/34752.html
金融科技:https://www.goluckyvip.com/tag/34753.html
深圳玉龙公园簕杜鹃花海花期时间+门票+交通:https://www.vstour.cn/a/365174.html
出境旅游预订须知:https://www.vstour.cn/a/365175.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流