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

  • 相关阅读:
    python文件的读写操作
    python的基础函数以及一些特性
    iOS中导航栏动态隐藏的其中一种方式
    python中字典和数组的使用
    C语言-简介
    C语言-数据数据类型、变量与常量
    C语言-运算符与表达式
    weak 和 assign 的区别!!!
    iOS 审核因为“内购”被拒的解决方案!
    pod install -bash: pod: command not found
  • 原文地址:https://www.cnblogs.com/zijinyouyou/p/6490870.html
Copyright © 2020-2023  润新知