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

  • 相关阅读:
    图解机器学习读书笔记-CH3
    塑造职场影响力的五大法宝
    怎样培养独挡一面的能力
    数据结构
    [分享]恼人的设计模式
    Git使用总结
    设计师整理的系统开发流程-简洁又有重点
    JavaScript中的String对象
    python高效解析日志入库
    如何让js不产生冲突,避免全局变量的泛滥,合理运用命名空间
  • 原文地址:https://www.cnblogs.com/zijinyouyou/p/6490870.html
Copyright © 2011-2022 走看看