• 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存在的时候直接使用,不存在的时候直接赋值为{}

  • 相关阅读:
    HDOJ_1010 Tempter of the Bone
    矩阵旋转
    HDU 2544 最短路 http://acm.hdu.edu.cn/showproblem.php?pid=2544
    题目连接:http://acm.zznu.edu.cn/problem.php?id=1329
    队列/优先队列(代码简单模式)
    虚拟方法调用
    Vim中分屏(整理)
    Java Web设计模式之依赖倒换原则
    Java Web 设计模式之开闭原则
    Java 2+2=5
  • 原文地址:https://www.cnblogs.com/zijinyouyou/p/6490870.html
Copyright © 2020-2023  润新知