js学习笔记1(变量、作用域、内存)
写在前面,舍弃叽叽歪歪,只做学习笔记,认真踏实。
学习书籍:javascript高级程序设计3版。
章节4.1 基本类型和引用类型
1、基本类型在内存中占据固定大小的空间,所以保存在栈内存中。
2、从一个变量向另一个变量复制基本类型的值的时候,会在栈中保存另一个副本。
3、引用类型的值是对象,保存在堆内存中。
4、包含引用类型的值的变量,包含的不是对象本身,而是指向该对象的在堆内存中的位置的指针。
5、确定一个值是哪一种基本类型,可以用typeof。确定一个对象是哪一种引用类型,可以使用instanceof。
4.3 变量的执行环境
每一个变量都存在于一个执行环境中,这个执行环境决定了变量的生命周期。
1、执行环境分为:全局环境和函数环境
2、每次进去一个新执行的环境,都会创建一个用于搜索变量和函数的作用域链
3、函数的局部环境不仅有权访问函数作用域中的变量,而且有权访问包括父环境,和全局环境。
4、全局环境中的变量只能访问全局环境中定义的函数和变量,不能访问局部环境中的任何数据。
5、一旦数据不再被使用,可以将其的值设置为null,来释放引用。
6、解除引用并不代表会收回数据所占的内存,而是让值脱离执行环境,在下一次垃圾运行机制执行的时候将其收回。
章节5 引用类型
1、引用类型的值(对象)是引用类型的一个实例。引用类型有时候也被称为对象定义,描述一类对象所具有的属性和方法。
2、对象是某个特定引用类型的实例,新对象,由new 后跟一个构造函数来创建 var person = new objec(); 等价于:var person = {};
5.1 object的类型
1、创建object实例的方式有两种:第一种是 new 一个构造函数;
第二种是使用对象字面量表示法。对象字面量是对象定义的一种简写的形式,目的在于简化创建含有大量属性的对象的过程。
var person = {name:"sheena",age:18};
5.2 array的类型
var colors = new Array("red","blue","yellow");
5.3 转换方法
valueOf(); toString(); toLocalString();
5.4 排序
sort();比较
reverse();反过来排列
var count = [5,7,2,4,9];count.sort();alert(count);
js学习笔记1(变量、作用域、内存)的更多相关文章
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- python3学习笔记12(变量作用域)
变量作用域 参考http://www.runoob.com/python3/python3-function.html Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量 ...
- Python 3 学习笔记之——变量作用域、模块和包
1. 变量作用域 Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的.变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称.Python 的作用域一共 ...
- 《JavaScript 高级程序设计》读书笔记四 变量 作用域 内存
一 变量(基本类型和引用类型) a.基本类型保存值,保存在栈内存,引用类型保存指针,保存在堆内存: b.所有函数的参数都是按值进行传递的,不管参数是何种类型: c.检测类型 typeof ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
- 基于jquery的插件turn.js学习笔记
基于jquery的插件turn.js学习笔记 简介 turn.js是一个可以实现3d书籍展示效果的jq插件,使用html5和css3来执行效果.可以很好的适应于ios和安卓等触摸设备. How it ...
- Node.js学习笔记(2):基本模块
Node.js学习笔记(2):基本模块 模块 引入模块 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式.在No ...
- JUC学习笔记——共享模型之内存
JUC学习笔记--共享模型之内存 在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍: Java内存模型 可见性 模式之两阶段终止 模式之Balk ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
随机推荐
- C# winform中 选择文件和保存文件
转载自https://blog.csdn.net/qq_31788297/article/details/62047952 我们在使用桌面软件的时候经常会使用到选择文件并打开和另存为等的窗口,这样方便 ...
- mac - MAC电脑安装Mysql服务器和Navicat for mysql客户端
1.下载链接 Navicat for mysql客户端 链接: https://pan.baidu.com/s/1dGbzgbR 密码: i43g Mysql服务器 链接: https://p ...
- firefox(火狐)怎么关闭鼠标拖拽搜索
工具-附加组件-卸载<附加组件管理器> 即可. 这玩意真心坑爹,起这个名字的人绝对是吃屎了,这名字怎么和鼠标拖拽混到一起的 !!! 关键字:火狐:鼠标:鼠标拖拽:鼠标手势:关闭
- JavaScript API 设计准则
好的 API 设计:在自描述的同时,达到抽象的目标. 设计良好的 API ,开发者可以快速上手,没必要经常抱着手册和文档,也没必要频繁光顾技术支持社区. 流畅的接口 方法链:流畅易读,更易理解 //常 ...
- LINUX手动查看和修改MTU值的方法
默认的ANDROID系统中不带BUSYBOX,所以无法用BUSYBOX IFCONFIG来查看修改MTU值.其实网卡的MTU值是保存在/sys/class/net/eth0/mtu文件中,所以可以通过 ...
- Python 邮箱
#coding:utf-8from email.header import Headerfrom email.mime.text import MIMETextfrom email.utils imp ...
- <2013 08 13> TeX and LaTeX, some introduction
1. TeX是Donald E. Knuth教授的精心杰作,它是个功能非常强大的幕后排版系统,含有弹性很大,而且很低阶的排版语言.含有九百多条指令,用Pascal语言(的一个子集)写成. 2. T ...
- Bean\Entity\Model\POJO\Dto\EJB简单解析
一.Bean 对于Bean而言,只要是Java的类的就可以称为一个Bean, 更用在Spring上,被Spring管理的对象就可以将其称作为Bean. 它不仅仅可以包括对象的属性以及get,set方法 ...
- Python3.6全栈开发实例[005]
5.接收两个数字参数,返回比较大的那个数字. def compare(a,b): return a if a > b else b # 三元表达式 print(compare(20,100))
- vue.js 拦截器
document.cookie = "mylogin=1";//1:登陆成功:保存登录状态 main.js router.beforeEach((to, from, next) = ...