变量、作用域、内存问题

基本类型值:指的是简单的数据段。如undefinednullbooleannumberstring。这5种基本数据类型是按值访问的。

引用类型值:指那些可能由多个值构成的对象。引用类型的值是保存在内存中的对象。引用类型的值实际上是按引用访问的。

函数参数实际上是函数的局部变量。

检测类型:    var s = "Nicholas"

var b = true

var i = 22

var u

var n = null

var o = new Object()

 

alert(typeof s)  //string

alert(typeof b)  //boolean

alert(typeof i)  //number

alert(typeof u)  //undefined

alert(typeof n)  //object

alert(typeof o)  //object

typeof操作符用来检测基本数据类型。

instanceof用来检测引用类型的值:

alert(person instanceof Object) //变量person是Object吗?

           alert(colors instanceof Array)  //变量colors是Array吗?

          alert(pattern instanceof RegExp)//变量pattern是RegExp吗?

如果变量是引用类型的实例,instanceof操作符就会返回true

在检测一个引用类型值和Object构造函数时,instanceof操作符始终会返回true。当然,如果使用instanceof操作符检测基本类型值,则该操作符始终会返回false。因为基本类型不是对象。

Web浏览器中,全局执行环境被认为时window对象,因此所有全局变量和函数都是作为window属性和方法创建的。某个执行环境中的所有代码执行完毕后,该坏境被销毁,保存在其中的所有变量和函数定义也随之销毁。

每个函数都有自己执行坏境。当执行流进入一个函数时,函数的坏境就会被推入一个环境栈中,而在函数执行之后,栈将其环境弹出,把控制权返回给之前的执行环境。

 

 

posted @ 2017-12-06 18:46  追丨追  阅读(99)  评论(0)    收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示