首页 > 代码库 > 笔记1
笔记1
预解释:在当前作用域下,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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。