zoukankan      html  css  js  c++  java
  • JavaScript概念

    1.基本数据类型:5个  Number  String  Boolean  null  undefined

    2.引用数据类型: 2个  object  function

    3.作用域:简单的说作用域就是变量的可访问范围,它控制着内部变量的可见性和生命周期

     全局作用域:浏览器加载的时候开辟的栈内存空间

     私有作用域:全局作用域下 的 函数运行时开辟的栈内存空间就是私有作用域(闭包);

     闭包:官方解释是  一个拥有多个变量和绑定了这个变量的环境的表达式(通常是一个函数),变量也是该表达式的一部分

     通俗的讲所有的function都是一个闭包。

     嵌套的function所产生的闭包更为强大,也是大部分时候我们所谓的'闭包';

     闭包的缺点:会制造出不被销毁的栈内存

     闭包的优点:1、保护内部变量不被外界污染,内部变量也不污染外部变量

                     2、可以通过返回值,返回内部变量的值

    function  fn(){
        var num = 1; // 当退出函数fn后,局部变量num不会销毁而是在栈内存
      return fn2(){// 一直存活             
          num++;  // 形成了一个严格意义上的闭包
           alert(num);
       }
    }
    var closure = fn();

    作用域链:

    4.JS中的内存空间: 2种  栈内存  堆内存

    栈内存:提供JS代码的执行环境;存储基本数据类型的值;

               ->全局作用域或者私有作用域 其实都是栈内存

    堆内存:存储引用数据类型的值(属性名和属性值,函数是把函数体中的代码当做字符串存储进去);

    5.变量:  临时存储的值;占位符   js是赋值的时候才知道 变量类型;

    全局变量:window下声明的变量(包括隐式声明的变量)

    私有变量:私有作用域下声明的变量

    变量的生命周期: 变量的生命周期伴随所在作用域的结束而销毁

    对于全局变量的生命周期是永久的,除非我们主动去销毁它

    对于局部变量的生命周期,随着函数调用结束而被销毁

  • 相关阅读:
    android studio 使用(一)
    【转】How to Change File Ownership & Groups in Linux
    ubuntu 14.04安装nodejs
    基于源码学习-fighting
    linux shell操作
    linux用户管理
    ubutu强制结束进程 kill -9 ProcessID
    ubuntu 添加和删除用户
    ubuntu 14.04查看java的安装路径
    vuex 中关于 mapState 的作用
  • 原文地址:https://www.cnblogs.com/zzzzzzzsy/p/6851442.html
Copyright © 2011-2022 走看看