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

小米手机的网站架构国外开源代码网站

小米手机的网站架构,国外开源代码网站,五合一网站定制,王也诸葛青cp图在JavaScript中#xff0c;预编译#xff08;hoisting#xff09;是指在代码执行之前#xff0c;JavaScript引擎会首先对代码进行扫描#xff0c;将所有的变量声明和函数声明提升到代码的最顶部。这一过程使得我们在代码中可以在声明之前使用变量和函数。理解预编译对于深…在JavaScript中预编译hoisting是指在代码执行之前JavaScript引擎会首先对代码进行扫描将所有的变量声明和函数声明提升到代码的最顶部。这一过程使得我们在代码中可以在声明之前使用变量和函数。理解预编译对于深入理解JavaScript的执行机制至关重要。以下是预编译的几个关键知识点 1. 变量声明提升 JavaScript会将变量声明var提升到当前作用域的顶部但是不会提升变量的赋值。 示例 console.log(x); // 输出: undefined var x 5; console.log(x); // 输出: 5解释 在预编译阶段这段代码实际上变成了 var x; console.log(x); // 输出: undefined x 5; console.log(x); // 输出: 5因此在第一次console.log调用时x已经被声明但未赋值因此输出undefined。 2. 函数声明提升 函数声明会被整体提升到当前作用域的顶部这意味着函数可以在声明之前被调用。 示例 hoistedFunction(); // 输出: This function has been hoisted!function hoistedFunction() {console.log(This function has been hoisted!); }解释 在预编译阶段这段代码实际上变成了 function hoistedFunction() {console.log(This function has been hoisted!); }hoistedFunction(); // 输出: This function has been hoisted!3. 函数表达式不提升 函数表达式不会被提升因此在声明之前调用函数表达式会导致错误。 示例 console.log(notHoisted); // 输出: undefined notHoisted(); // 抛出TypeError: notHoisted is not a functionvar notHoisted function() {console.log(This function is not hoisted.); };解释 在预编译阶段这段代码实际上变成了 var notHoisted; console.log(notHoisted); // 输出: undefined notHoisted(); // 抛出TypeError: notHoisted is not a functionnotHoisted function() {console.log(This function is not hoisted.); };由于notHoisted在声明之前被调用因此它的值是undefined无法作为函数调用。 4. let和const的特性 let和const声明的变量不会被提升到作用域顶部但会在声明之前处于暂时性死区Temporal Dead ZoneTDZ。 示例 console.log(a); // ReferenceError: Cannot access a before initialization let a 3;console.log(b); // ReferenceError: Cannot access b before initialization const b 5;解释 let和const的变量在声明之前无法被访问尝试访问会导致ReferenceError。这与var的行为不同。 5. 预编译过程概述 在代码执行之前JavaScript引擎会经历以下预编译步骤 创建全局执行上下文Global Execution Context。扫描代码查找变量声明var、函数声明。将变量声明提升到当前作用域顶部并初始化为undefined。将函数声明提升到当前作用域顶部并将函数体赋值给对应标识符。执行代码。 示例 function example() {console.log(a); // 输出: undefinedvar a 2;console.log(b); // 输出: function b() { console.log(This is function b); }function b() {console.log(This is function b);} }example();解释 在预编译阶段这段代码实际上变成了 function example() {var a;function b() {console.log(This is function b);}console.log(a); // 输出: undefineda 2;console.log(b); // 输出: function b() { console.log(This is function b); } }example();在预编译阶段a和b已经被提升a初始化为undefinedb初始化为函数体。 结论 预编译是JavaScript执行过程中的一个重要机制通过理解变量和函数的提升我们可以更好地理解代码的执行顺序避免意外的错误。特别是在涉及var、let、const以及函数声明和表达式时预编译机制显得尤为重要。
http://www.hkea.cn/news/14372461/

相关文章:

  • 住房与城乡建设局网站湖北哪里需要建网站
  • 集团网站建设 中企动力蛟河市建设局网站
  • 网页代码教程wordpress seo yoast
  • 建设厅网站生成案卷生成不了aws wordpress 路径
  • 做购物平台网站 民治qq空间域名抢注网站
  • 怎样查网站空间地址网站建设插件代码大全
  • 群晖 做网站广州市网站建设制作设计平台
  • 旅游网官方网站东莞汽车网站建设
  • 做暧暧小视频免费网站网站建设企业电话
  • 网站建设 学习 长沙网站404怎么做
  • 网站开发登录链接做企业网站设
  • 特种工建设网站公众号开发教程零基础
  • 网站建设最贵服务商营销策划案的模板
  • 如何做网站结构及栏目策划黑客入侵别人网站做seo
  • 南城做网站免费公司网站源码
  • 池州市网站建设优化提供手机网站开发
  • 网站架构师培训网站建设咨询服务
  • 网站建设商标属于哪个类别APP和网站是一样吗
  • 冠县快搜网站建设有限公司南宁网站快速优
  • 老鹰网网站建设做网站都需要哪些技术
  • 网站设计制作的特点有哪些大型门户网站系统
  • 宝安网站制作网站建设女生做网站编辑好不好
  • 做论坛网站看什么书知末网室内设计效果图
  • 梧州网站建设费用彭州建设局网站
  • 工程机械外贸网站建设wordpress博客搬家
  • title 镇江网站建设安徽seo优化
  • 网站制作网站开发公司徐州网站
  • 注册个网站怎么注册什么是优化设计
  • 豆瓣wordpress主题淘宝seo是什么意思
  • 查找公司信息的网站网站开发与服务器匹配