1 尽量少用全局变量,最好一个应用程式只有一个全局变量
  隐含全局变量(不使用var声明)与明确定义的全局变量区别:
  (1)使用var创建的全局变量(在函数外部声明)不能用delete删除
  (2)不使用var创建的隐含全局变量可以删除
这表明隐含全局变量严格来讲并不是真正的变量,而是全局对象的属性,属性可以通过delete操作符删除,但是变量不可以

2 获取全局对象
   var global = (function() {
       return this;
   })

3 单一var模式: 只是用一个var在函数顶部进行变量声明,是一种很有用的模式
   使用一个var关键字声明由逗号分开的多个变量,同时初始化变量
var a=1,b=2,sum=a+b,myobject={};

4 "提升": javascript中,只要变量是在同一个范围(同一函数)里, 就视为已经声明,哪怕是在变量声明前就是用,无论在哪里,效果等同于在函数顶部声明。
在每个函数中仅仅使用一个var变量声明,这有助于在一个地方查看所有变量,可以有效防范变量提升导致的错误。

5 HTMLCollection是实时的,动态的,因此使用for循环的时候,最好是将数组的长度缓存起来
for (var i=0, max=myarray.length; i<max; i++ )

逐步减少至0,这样通常更快,同0比较比同数组长度的比较更有效率

6 for-in循环应该用来比较非数组对象,因为他会将原型中的属性也会枚举出来,即对象的全部属性
当遍历对象属性来过滤遇到原型链的属性是,可以使用hasOwnProperty()来判断。他不包含原型链中的属性

  1. for(var i in man) {
  2. if(man.hasOwnProperty(i)) {
  3. man[i]
  4. }
  5. }

另一种方法,使用Object.prototype.hasOwnProperty.call(man,i);

7 使用 === !==

8 避免使用eval

9 parseInt,每次使用需要指定进制参数
   另一种将字符串转换成数字的办法,Number("08"),这种方法比parseInt快很多,parseInt是解析而不是简单得转换,“08 hello”,出parseInt返回一个数值外,其他方法都会失败并返回“NaN”

【javascript模式】Chapter2: 基本 技巧的更多相关文章

  1. 初涉JavaScript模式 (2) : 基本技巧

    尽量少用全局变量 大量使用全局变量会导致的后果 全局变量创建以后会在整个JavaScript应用和Web页面中共享.所有的全局变量都存在于一个全局命名空间内,很容易发生冲突 不知不觉创建了全局变量 其 ...

  2. ( 译、持续更新 ) JavaScript 上分小技巧(四)

    后续如有内容,本篇将会照常更新并排满15个知识点,以下是其他几篇译文的地址: 第一篇地址:( 译.持续更新 ) JavaScript 上分小技巧(一) 第二篇地址:( 译.持续更新 ) JavaScr ...

  3. ( 译、持续更新 ) JavaScript 上分小技巧(一)

    感谢好友破狼提供的这篇好文章,也感谢写这些知识点的作者们和将他们整理到一起的作者.这是github上的一篇文章,在这里本兽也就只做翻译,由于本兽英语水平和编程能力都不咋地,如有不好的地方也请多理解体谅 ...

  4. javascript之奇淫技巧

    最近准备面试,复习一下javascript,整理了一些javascript的奇淫技巧~ //为兼容ie的模拟Object.keys() Object.showkeys = function(obj) ...

  5. 《javascript模式--by Stoyan Stefanov》书摘--汇总

    <javascript模式--by Stoyan Stefanov>书摘--基本技巧 http://www.cnblogs.com/liubei/p/JavascriptModeLog1. ...

  6. javascript 模式(1)——代码复用

    程序的开发离不开代码的复用,通过代码复用可以减少开发和维护成本,在谈及代码复用的时候,会首先想到继承性,但继承并不是解决代码复用的唯一方式,还有其他的复用模式比如对象组合.本节将会讲解多种继承模式以实 ...

  7. 在Swift中使用JavaScript的方法和技巧

    本文作者Nate Cook是一位独立的Web及移动应用开发者,是继Mattt大神之后NSHipster的主要维护者,也是非常知名活跃的Swift博主,并且还是支持自动生成Swift在线文档的Swift ...

  8. ( 译、持续更新 ) JavaScript 上分小技巧(三)

    最近家里杂事较多,自学时间实在少的可怜,所以都在空闲时间看看老外写的内容,学习之外顺便翻译分享~等学习的时间充足些再写写自己的一些学习内容和知识点分析(最近有在接触的:复习(C#,SQL).(学习)T ...

  9. ( 译、持续更新 ) JavaScript 上分小技巧(二)

    考虑到文章过长,不便于阅读,这里分出第二篇,如有后续,每15个知识点分为一篇... 第一篇地址:( 译.持续更新 ) JavaScript 上分小技巧(一) 第三篇地址:( 译.持续更新 ) Java ...

  10. 【读书笔记】读《JavaScript模式》 - 函数复用模式之现代继承模式

    现代继承模式可表述为:其他任何不需要以类的方式考虑得模式. 现代继承方式#1 —— 原型继承之无类继承模式 function object(o) { function F() {}; F.protot ...

随机推荐

  1. BZOJ 1017 魔兽地图

    Description DotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA (Defense of the Anc ...

  2. Mashmokh and Tokens

    Codeforces Round #240 (Div. 2) B;http://codeforces.com/problemset/problem/415/B 题意:老板一天发x张代币券,员工能用它来 ...

  3. Inna and Binary Logic

    Codeforces Round #234 (Div. 2) E:http://codeforces.com/problemset/problem/400/E 题意:给你n个数,然后每相邻的两个数可以 ...

  4. Cortex-M0系统滴答定时器Systick详解

    上图是LPC1114系统滴答定时器(SysTick)的结构图.系统滴答定时器位于Cortex-M0内核中,也就是说,不论是LPC1114,还是其他的Cortex-M0内核单片机,都有这个系统定时器.其 ...

  5. 看奢侈品Prada如何使用物联网

    这是峰哥在一家国际顶级商学院听课的笔记.这是个巨变的时代,有趣的时代. 一 PRADA在纽约的旗舰店.每件衣服上都有RFID码.每当一个顾客拿起一件PRADA进试衣间,RFID会被自动识别,试衣间里的 ...

  6. ZOJ-3597-Hit the Target!(线段树+扫描线)

    题解引自:http://www.cnblogs.com/wuyiqi/archive/2012/04/28/2474614.html 这题和着题解一块看,看了半天才看懂的....菜菜.... 题意:有 ...

  7. vijosP1194 Domino

    vijosP1194 Domino 链接:https://vijos.org/p/1194 [思路] 矩阵相乘. 参考Matrix67的文章: [代码] #include<cstdio> ...

  8. SoupUI学习资料

    官网: https://www.soapui.org 下载地址: https://www.soapui.org/downloads/soapui.html 官方文档: https://www.soap ...

  9. 高性能Java Web 页面静态化技术(原创)

    package com.yancms.util; import java.io.*; import org.apache.commons.httpclient.*; import org.apache ...

  10. Ubuntu中使用终端运行Hadoop程序

    接上一篇<Ubuntu Kylin系统下安装Hadoop2.6.0> 通过上一篇,Hadoop伪分布式基本配好了. 下一步是运行一个MapReduce程序,以WordCount为例: 1. ...