JavaScript for in 语句使用详解[转载]

青旅半醒 2022-08-06 01:08 233阅读 0赞



原文: JavaScript for in 语句使用详解
原标题:JavaScript语言精粹 读书笔记(二)

公司的项目突然很忙,看书的进度明显慢下来了,不过还是继续慢慢的学…

for in 语句可以用来遍历一个对象中的所有属性名。这个枚举过程将会列出所有的属性——包括函数和可能不关心的原型中的属性,所以有必要过滤那些不想要的值。最常用的过滤器是 hasOwnProperty 方法,以及使用 typeof 来排除函数: var name;
for (name in another_stooge) {
if (typeof another_stooge[name] !== ‘function’) {
document.writeln(name + ‘: ‘ + another_stooge[name]);
}
}

属性名出现的顺序是不确定的,因此要对任何可能出现的顺序有所准备。如果想要确保属性以特定的顺序出现,最好的办法就是完全避免使用 for in 语句,而是创建一个数组,在其中以正确的顺序包含属性名:
var i;
var properties = [
‘first-name’,
‘middle-name’,
‘last-name’,
‘profession’
];
for (i = 0; i < properties.length; i++) {
document.writeln(properties + ‘: ‘ + another_stooge[properties]);
}
通过使用 for 而不是 for in,可以得到我们想要的属性,而不用担心可能发掘出原型链中的属性,并且我们按正确的顺序取得了它们的值。


delete 运算符可以用来删除对象的属性。如果对象包含该属性,那么该属性就会被移除,它不会触及原型链中的任何对象。

删除对象的属性可能会让来自原型链中的属性透现出来。
delete another_stooge.nickname;


减少全局变量污染

JavaScript可以很随意的定义全局变量来容纳应用的所有资源。但是全局变量削弱了程序的灵活性,应避免使用。

最小化使用全局变量的方法之一是为应用只创建一个唯一的全局变量:

  1. var MYAPP = \{\};
  2. 这时这个变量编程了应用的容器:
  3. MYAPP.stooge = \{
  4. "first-name": "Joe",
  5. "last-name": "Howard"
  6. \};
  7. MYAPP.flight = \{
  8. airline: "Oceanic",
  9. number: 815,
  10. departure: \{
  11. IATA: "SYD",
  12. time: "2014-11-18 16:50",
  13. city: "Beijing"
  14. \},
  15. arrival: \{
  16. IATA: "SYD",
  17. time: "2014-11-18 16:50",
  18. city: "Beijing"
  19. \}
  20. \};

只要把全局性的资源都纳入一个名称空间之下,你的程序与其他应用程序、组件或类库之间发生冲突的可能性就会显著降低。

发表评论

表情:
评论列表 (有 0 条评论,233人围观)

还没有评论,来说两句吧...

相关阅读

    相关 forin循环语句应用

    一 语法 for…in循环语句和for循环语句十分相似,for…in语句用来遍历对象的每一个属性。每次都将属性名作为字符串保存在变量里。 语法: for (variabl

    相关 JavaScript-for~in循环

    `for...in`语句以任意顺序遍历一个对象的可枚举属性。对于每个不同的属性,语句都会被执行。 语法: for (variable in object) \{

    相关 Java for语句详解

    for 语句是一种在程序执行前就要先判断条件表达式是否为真的循环语句。假如条件表达式的结果为假,那么它的循环语句根本不会执行。for 语句通常使用在知道循环次数的循环中。