码迷,mamicode.com
首页 > 其他好文 > 详细

笔记1

时间:2016-12-17 22:51:08      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:内存   属性   --   全局   使用   作用域   字符   window   作用   

预解释:在当前作用域下,js代码从上到之下执行之前,(浏览器默认)首先把所有带var和function关键字的进行提前的声明或者定义
带var和function关键字的还不一样
var:预解释的时候只是声明
function:预解释的时候声明和定义一起完成了

var a=snake;
声明:declare var a; 只声明不定义默认值是undefined 是在预解释的时候完成的
定义:defined a=snake; 赋值其实相当于我们的定义 在代码执行的时候完成


作用域:
1、在js中的作用域只有两种:私有的作用域(函数执行的时候形成的)、全局的作用域(window)
2、作用域是一个栈内存,用来提供js代码执行的环境和存储基本数据类型的值的
3、全局作用域:浏览器加载我们页面的时候,会默认的提供一个供js代码执行的环境--全局作用域。
全局作用域只有在页面的关闭的时候才会销毁。
全局作用域下声明的变量都是全局变量!全局变量可以在页面中的任何位置获取使用!
4、私有作用域:只有函数执行才会形成私有的作用域



 A、函数执行会形成一个新的私有的作用域,保护里面的私有变量不受外界的干扰(函数的这种保护机制叫做闭包)
B、在新的私有作用域中第一步给形参赋值,形参属于我们当前私有作用域中的私有变量;
C、私有作用域下的预解释,也是找到所有带var和function关键字的,在私有作用域中声明的变量(函数)都是私有的变量;
D、代码从上倒下执行,如果遇到一个变量,首先看是否为私有的变量,
如果没有则往上一级作用域查找,上级没有继续向上查找,直到找到window为止;
如果是私有的变量,那么里面出现的所有的变量都是私有的,和外面没有半毛钱的关系;
E、一般情况下,当我们的代码执行完成,当前作用域就立即销毁了



堆内存:我们引用数据类型开辟的那个内存空间,
1对象数据类型是把属性名和属性值存进去,
2 函数数据类型是把函数体中的js代码当做字符串存进去

笔记1

标签:内存   属性   --   全局   使用   作用域   字符   window   作用   

原文地址:http://www.cnblogs.com/luke-/p/6193062.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!