• 变量、作用域


            开始之前,先明确几个易混淆点:

    1.js引擎在读取js代码的时候,会执行两个步骤,①解释②执行;

    2.解释就是通篇扫描所有的js代码,把所有声明提到顶端,执行就是操作一类的。;

    3.变量提升:函数声明和变量声明总是会被解释器悄悄的提升到方法体的最顶端;

    4.函数提升在变量提升之上。

    开始:

    1.ES(ECMAScript)变量可能包含两种不同类型的值:基本类型值+引用类型值;

    2.基本类型值:简单的数据段;引用类型值:可能由多个值构成的对象;

    3.引用类型的值是保存在内存中的对象,引用类型的值是按引用来访问的。

    娓娓道来:

    1.若一个变量向另一个变量复制基本类型的值,会在变量上创建一个新值,然后把该值复制到为新变量分配的位置上(复制基本类型值);

    2.若一个变量向另一个变量复制引用类型的值时,也会将存储在变量对象中的值复制一份放在新变量分配的位置上,但是:这个值的副本其实只是一个指针,而指针指向存储在堆中的一个对象,复制操作结束后,两个变量实际上引用的是同一个对象;故改变一个变量,另外一个变量也会受影响。

    其他:

    1.js没有块级作用域;

    2.作用域:对某个范围产生作用,而不会对外产生任何影响的封闭空间。在这个空间中,外部不能访问内部变量,但是内部变量可以访问外部变量。

  • 相关阅读:
    Python requests乱码的五种解决办法
    apache安装
    Python 跨文件调用函数 + 在一个文件中执行另一个文件
    配置IIS使用Python
    gradle编译
    字符串UTF8转JIS
    cannot be loaded because running scripts is disabled on this system的对策
    您知道eval中的和括号的含义吗
    Python 学习笔记
    windows装mysql一定要装vs和python吗
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/8948066.html
Copyright © 2020-2023  润新知