js self 最基础的认识 2

变量,作用域和内存问题

1,基本类型和引用类型的值


基本类型指的是:简单的数据段;(5种基本的数据类型)

引用类型值:由多个值构成的对象;(操作对象  es  不能直接访问内存地址,而是通过引用去访问)


2,动态的属性

引用类型的值可以添加属性,   var  person = new Object();    person.name = 'pppp'   alert( person.name )

而基本类型不行

3,复制变量值(得好好理解)

复制基本类型

var num1 = 5 ;    num2 = num1;   这样两个变量有了相同的值,但是他们是独立的,各自代表的不同;内存存储的位置不同,改变一个值不会影响另一个值;

复制引用类型

从一个对象引用的值赋值给另一个,两个变量引用的是同一个对象,因此改变一个会影响另一个的

4,传递参数

把函数外部的值传递到函数的内部;

基本类型:传递过程中被传递的值会复制给一个局部变量(即命名参数,或者 arguments  对象的一个元素),

引用类型:传递过程是把内存中的地址复制给局部变量;(注意局部值,和全局值)

5,检测值的类型

typeof   可以检查基本类型;但有时检测不出;

就需要使用instanceof    用法:   alert( arr  instanceof  object )  检查是否为对象  (只能检查引用类型)


二,执行环境及作用域(先了解一下,后面慢慢整理)

执行环境定义了变量或函数有权访问的其他数据,决定他们各自的行为,

全局变量在web中被认为是  window对象,(只有在程序退出才会销毁)

在写代码的时候,一定注意全局变量和局部变量

延长作用域链:  try-catch   ,  with  










































     

你可能感兴趣的:(js self 最基础的认识 2)