zoukankan      html  css  js  c++  java
  • js小知识

    1.js中全局变量的风险:别人可以创建相同名称的变量,覆盖掉你正在使用的变量

      避免方法:

      A.创建一个包含其他所有变量的全局变量

        var applicationName={}

        当需要创建一个全局变量时,附加到对象上即可:applicationName.myVariable=”abc”

      B.另一种方法是将所有代码封装到一个自动执行的函数中,这样所有声明的变量都在函数内

        (function(){

          var a=”abc”;

        })();

    2.变量提升:无论变量是在范围内的哪个地方声明的,javascript引擎会将这个声明提升到该范围的顶部

      function foo(){

        //省略代码

        var a=”abc”;

       }

      实际上会这样执行:

      function foo(){

        var a;

        //省略代码

        a=”abc”;

      }

    3.闭包:闭包允许一个函数定义在另一个外部函数的作用域内,即便作用域内的其他东西消失了,它仍可以访问外部函数的变量;闭包是有权限访问另一个函数作用域的变量的函数

    4.js中让全局变量少的重要的使用var来声明变量

      function sum(x,y){

        result=x+y;//没有声明result变量,result为隐式全局变量

        return result;

      }

      function foo(){

        var a=b=0;//a为局部变量,b为全局变量

      }

        通过var创建的全局变量(任何函数之外的程序中创建的)是不能被删除的;无var创建的隐式全局变量(无论是否在函数中创建)是可以被删除的

        技术上,隐式全局变量不是真正的全局变量,但他们是全局对象的属性,属性可以通过delete操作符删除,而变量不能

    5.js中()为分组操作符,如eval(‘(‘+data+’)’),就是因为括号,会让解析器强制将JSON的花括号解析成表达式而不是代码块

    6.js声明变量:var cnblogs=cnblogs||{},这是确保cnblogs存在的时候直接使用,不存在的时候直接赋值为{}

  • 相关阅读:
    Blank page instead of the SharePoint Central Administration site
    BizTalk 2010 BAM Configure
    Use ODBA with Visio 2007
    Handling SOAP Exceptions in BizTalk Orchestrations
    BizTalk与WebMethods之间的EDI交换
    Append messages in BizTalk
    FTP protocol commands
    Using Dynamic Maps in BizTalk(From CodeProject)
    Synchronous To Asynchronous Flows Without An Orchestration的简单实现
    WSE3 and "Action for ultimate recipient is required but not present in the message."
  • 原文地址:https://www.cnblogs.com/zijinyouyou/p/6490870.html
Copyright © 2011-2022 走看看