保藏本站 保藏本站
188bet注册网主页 - 软件测验 - 常用手册 - 站长东西 - 技能社区
主页 > JavaScript > JS根底入门 > 正文

主页 - PHP - 数据库 - 操作体系 - 游戏开发 - JS - Android - MySql - Redis - MongoDB - Win8 - Shell编程 - DOS指令 - jQuery - CSS款式 - Python - Perl

Access - Oracle - DB2 - SQLServer - MsSql2008 - MsSql2005 - Sqlite - PostgreSQL - node.js - extjs - JavaScript vbs - Powershell - Ruby

浅析四种常见的Javascript声明循环变量的书写办法

Javascript中的循环变量声明,究竟应该放在哪儿?

检查图片

习气1:不声明直接运用

function loop(arr) { 
 for (i = 0; i < arr.length; i++) { 
  // do something 
 } 
} 

十分风险的运用习气,一般情况下循环变量将成为window目标上的一个特点被大局运用,极有或许影响程序的正常逻辑完成。
需求着重提一下的是,在strict形式下,未声明变量而直接赋值的运用办法会直接抛出反常,早就该这么做啦!引证一下ecma-262标准附录C中的一段话:
"Assignment to an undeclared identifier or otherwise unresolvable reference does not create a property in the global object. When a simple assignment occurs within strict mode code, its LeftHandSide must not evaluate to an unresolvable Reference. If it does a ReferenceError exception is thrown (6.2.3.2)."
换言之,假如再运用未经声明的变量的话,ReferenceError反常会被抛出。

习气2:放在for循环初始句子块中并重复声明

function loop(arr) { 
 for (var i = 0; i < arr.length; i++ ){ 
  // do someting 
 } 
 // console.log(i); 
 for (var i = 0; i < arr.length; i++ ){ 
  // do something else 
 } 
} 

这种办法看似最安全标准,许多从C和Java转到前端开发的同学都偏心这样的写法,事实上,这也许是因为对Javascript中一个重要概念有所 误解形成的——变量作用域。不同于C和Java,Javascript并不具有真实的块级作用域,也便是说,在第一个循环完毕之 后,console.log(i)并不会打印undefined或许抛出ReferenceError反常,而是会正常打印出arr.length。
当然,这样的写法尽管除了漂亮以外含义不大,可是长久以来兼容性杰出且没有违背任何标准——ecma标准中并没有制止在某一个作用域内关于同一变量的重复声明。

习气3:在函数顶部和其他变量一同会集界说

function loop(arr) { 
 var var1; 
 var var2; 
 var i; 
 
 for (i = 0; i < arr.length; i++) { 
  // do something 
 } 
} 

这种c89-like式的变量界说办法在Javascript中简直无可挑剔,既不会形成Javascript支撑块级作用域的误解,又不会污染全 局scope,还不违背任何标准和标准,首要缺陷便是循环变量的声明和循环体或许会离隔比较远。在不凭借更多代码的前提下,除了等候各大干流浏览器厂商完成ECMAScript 6中的let关键字以外,这个问题好像找不到更好的处理方案。

习气4:将循环代码封装到IIFE中

function loop(arr) { 
 (function () { 
  for (var i = 0; i < arr.length; i++) { 
   // do something 
  } 
 })(); 
} 

最终一种习气是前端程序员们了解的IIFE(Immediately-Invoked Function Expression),即当即履行函数。此种办法的首要缺陷是书写相对费事,且有剩余的功能损耗(很小),但在兼容性、对各标准标准的遵从上体现杰出。 假如不嫌费事,开发者能够采纳这种办法。

以上便是对Javascript中四种常见循环变量界说书写习气的简略介绍和剖析,各有利弊,读者能够结合自己的需求择优运用。

Javascript中的数据类型之旅
尽管Javascript是弱类型言语,可是,它也有自己的几种数据类型,分别是:Number、String、Boolean、Object、Udefined、Null。其间,Object归于杂乱数据类型,Object

JavaScript根本的输出和嵌入式写法教程
JavaScript没有任何打印或许输出的函数。在HTML中,JavaScript一般用于操作HTML元素。操作HTML元素如需从JavaScript拜访某个HTML元素,您能够运用document.getElement

JavaScript中字面量与函数的根本运用常识
JavaScript字面量在编程言语中,一个字面量是一个常量,如3.14。数字(Number)字面量能够是整数或许是小数,或许是科学计数(e)。3.141001123e5字符串(Strin

本周排行

更新排行

强悍的草根IT技能社区,这儿应该有您想要的! 友情链接:b2b电子商务
Copyright © 2010 touzhuwang75.com. All Rights Rreserved  京ICP备05050695号