美文网首页
1.javascript读书笔记---变量

1.javascript读书笔记---变量

作者: 我爱阿桑 | 来源:发表于2019-08-14 17:41 被阅读0次

整体思维导图

image.png

变量

当复制基本类型变量时:
此时num2中的5和num1的5是相互独立的,num2的5只是num1的复制值,和num1完全不相关,此后两个参数参加任何操作而不会相互影响。

var num1=5
var num2=num1
var num1=6
console.log('num1',num1)  //6
console.log('num2',num2)  //5

当复制引用类型变量时:

 var obj1= new Object()
 var obj2 = obj1
 obj1.name = "mjc"
console.log(obj2.name )   //mjc

当一个变量复制一个引用类型的变量时,虽然也会复制一个值到新的变量,但是不同于基础变量的是:这个复制的值只是一个指针,obj2的值的指向和obj1的指向是一样的,都是堆内听一个值,所以当obj1改变后,obj2 的值也会跟着变化。
传递参数

function setName(obj) {
obj.name = "Nicholas";
obj = new Object();
obj.name = "Greg";
}
var person = new Object();
setName(person);
alert(person.name);    //"Nicholas"

在把person传递给setName()后,其name属性被设置为"Nicholas"。然后,又将一个新对象赋给变量obj,同时将其name属性设置为"Greg"。如果person是按引用传递的,那么person就会自动被修改为指向其name属性值为"Greg"的新对象。但是,当接下来再访问person.name时,显示的值仍然是"Nicholas"。这说明即使在函数内部修改了参数的值,但原始的引用仍然保持未变。实际上,当在函数内部重写obj时,这个变量引用的就是一个局部对象了。而这个局部对象会在函数执行完毕后立即被销毁。
检测类型
检测基本类型最好用的办法是typeof,唯一的区别就是null,它会返回object
检测引用类型的方法是instanceof 只要是验证引用类型是不是object,结果都是true

 var arr=[]
    console.log(arr instanceof Object)  //true
    console.log(arr instanceof Array)   //true

执行环境以及作用域
所有变量(包括基本类型和引用类型)都存在于一个执行环境(也称为作用域)当中,这个执
行环境决定了变量的生命周期,以及哪一部分代码可以访问其中的变量。以下是关于执行环境的几点总结:
执行环境有全局执行环境(也称为全局环境)和函数执行环境之分;
每次进入一个新执行环境,都会创建一个用于搜索变量和函数的作用域链;
函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问其包含(父)环境,乃至全
局环境;
全局环境只能访问在全局环境中定义的变量和函数,而不能直接访问局部环境中的任何数据;
变量的执行环境有助于确定应该何时释放内存。

相关文章

  • 1.javascript读书笔记---变量

    整体思维导图 变量 当复制基本类型变量时:此时num2中的5和num1的5是相互独立的,num2的5只是num1的...

  • 数据类型

    1.JavaScript基础 1.JavaScript的语法 1.1 变量 2.数据类型的分类 2.1 原始类型:...

  • Day1:JavaScript变量与类型

    1.JavaScript变量 变量(Variables)在程序中用于存储数据,我们可以将数据存入变量,并在将来替换...

  • JavaScript

    JavaScript的变量声明: var变量可以用来声明 :字符串、数字、数组、布尔 1.JavaScript运行...

  • JavaScript简单了解

    1.JavaScript的作用: 2.声明变量的方式:var 变量名称 = 变量值 注意: 变量的名称只能有大小写...

  • 1.javascript中的变量

    变量的声明与赋值松散类型:可以用来保存任何类型的数据,也就是说,每一个变量仅仅是一个用于保存值的占位符而已 一次声...

  • js的变量类型和计算

    变量类型 按照存贮方式来分,变量类型分为值类型和引用类型 1.JavaScript中的变量类型有哪些? (1)值类...

  • js作用域、作用域链、闭包

    作用域 1.javascript局部作用域 变量在函数内部声明,变量为局部作用域. 2.javascript全局变...

  • JavaScript笔记

    1.JavaScript 的变量名区分大小写,A 和 a 是两个不同的变量。2.如果一个变量只是声明而没有赋值,则...

  • JavaScript 变量和类型篇

    一、JavaScript基础 变量和类型 1.JavaScript规定了几种语言类型 JavaScript中的每一...

网友评论

      本文标题:1.javascript读书笔记---变量

      本文链接:https://www.haomeiwen.com/subject/ybryjctx.html