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的开发者 ...
随机推荐
- VS2005 Manifest 配置问题总结
一.问题 编译某个遗留工程后,运行程序时报错,“由于应用程序的配置不正确,应用程序无法启动.重新安装应用程序可能会解决这个问题.” 查看生成的Manifest文件如下: <?xml versio ...
- Apache thrift - 使用,内部实现及构建一个可扩展的RPC框架
本文首先介绍了什么是Apache Thrift,接着介绍了Thrift的安装部署及如何利用Thrift来实现一个简单的RPC应用,并简单的探究了一下Thrift的内部实现原理,最后给出一个基于Thri ...
- ios UICollectionView reloadData无法更新的奇怪问题。
报错 Assertion failure in -[UICollectionViewData invalidateItemsAtIndexPaths:] 近来偶尔用到UICollectionVi ...
- [Unity基础]移动平台下的文件读写
From:http://blog.csdn.net/lyh916/article/details/52161633 参考链接: http://www.cnblogs.com/murongxiaopif ...
- Android无线测试之—UiAutomator UiObject API介绍一
UiObject类介绍 一.UiObject类介绍 UiObject代表一个UI元素,通过UiSelector查找跳进创建一个UiObject实例,找到这个实例以后可以对这个实例进行各类操作 二.Ui ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.5——在flavors间合并java代码
问题: 你想要在单独的product flavors里面增加Acitivity或者其它java类. 解决方案: 创建合适的代码目录,增加java类,将它们和main代码合并. 讨论: flavors和 ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.1——使用Build Types
问题: 你想要自定义debug和release的build types,并且新建一些新的types. 解决方案: 使用buildTypes块配置build types. 讨论: build type决 ...
- water mark
图片水印 https://www.oschina.net/p/watermarkjs?nocache=1542795300822 https://www.cnblogs.com/pengjunhao/ ...
- 【BZOJ4817】[Sdoi2017]树点涂色 LCT+线段树
[BZOJ4817][Sdoi2017]树点涂色 Description Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同.定义一条路径的权值是:这条路 ...
- 3N Numbers
D - 3N Numbers Time limit : 2sec / Memory limit : 256MB Score : 500 points Problem Statement Let N b ...