JavaScript中的数据转换
今天我们说说数据类型转换的问题,js中有七种类型:
- number
- string
- boolean
- symbol
- null
- undefined
- object
它们之间是如何进行类型转换的呢?
任意类型转字符串:
String(x)
也可以
toString()
也可以
x + ' '
任意类型转换数字
Number(x)
parseInt(x, 10)
第一位为参数,第二位可接转换进制,可不写,默认10进制。
parseFloat(x)
浮点数的转换
任意类型数字转换可简写成 x - 0
也可以写成 + x
任意类型转布尔值
Boolean(x)
!!x 双感叹号即可
需要记住:七个falsy值(即在boolaen上下文中指定可转换为false的值就叫falsy)
false 0 NaN ' ' " " null undefined
内存图(解释内存如何存放js)
- 一个 8G的内存条
- 操作系统开机即占用 512MB
- Chrome 打开即占用 1G 内存
- Chrome 各每个网页分配一定数量的内存
- 这些内存要分给页面渲染器、网络模块、浏览器外壳和 JS 引擎(V8引擎)
- JS 引擎将内存分为代码区和数据区
- 我们只研究数据区
- 数据区分为 Stack(栈内存) 和 Heap(堆内存)
- 简单类型的数据直接存在 Stack 里
- 复杂类型的数据是把 Heap 地址存在 Stack 里
遇到引用类型或者基本类型内存存储的问题直接画图,将其变量声明存放的位置画在Stack、Heap中。不用动脑,画完即可得出结论。
基于Stack(栈内存)和Heap(堆内存),就引发出了一个问题?深拷贝与浅拷贝是什么鬼?
var a = 1
var b = a
b = 2 //这个时候改变 b
a 完全不受 b 的影响
那么我们就说这是一个深拷贝
对于简单类型的数据来说,赋值就是深拷贝。
对于复杂类型的数据(对象)来说,才要区分浅拷贝和深拷贝。
这是一个浅拷贝的例子
var a = {name: 'yang'}
var b = a
b.name = 'guo'
a.name === 'guo' // true
因为我们对 b 操作后,a 也变了
什么是深拷贝?就是对Heap堆内存进行的完全拷贝。
JavaScript中的数据转换相关推荐
- javascript中的异步调用,promise对象,async/await用法
原生javascript中的的回调函数 即callback 就是通过回调函数来通知主程序 对于io 密集的非常好用:eg. file,DB读写,网络访问 异步: javascript就是个单线程语言, ...
- 浅析 JavaScript 中的 函数 uncurrying 反柯里化
柯里化 柯里化又称部分求值,其含义是给函数分步传递参数,每次传递参数后部分应用参数,并返回一个更具体的函数接受剩下的参数,这中间可嵌套多层这样的接受部分参数函数,直至返回最后结果. 因此柯里化的过程是 ...
- JavaScript中,this的绑定规则
对于 JavaScript 新手来说,this 是非常基础同时也难以理解的知识点. 比如下面的代码,this 指向就有三种方式. 在<你不知道的 JavaScript>一书中,我总算比较清 ...
- Javascript中undefined,NaN等特殊比较
以下内容转自: http://blog.csdn.net/hongweigg/article/details/38090093 1.问题:在Javascript中,typeof(undefined) ...
- Javascript中二进制数据处理方法
Javascript中二进制数据处理方法 转载于:https://www.cnblogs.com/motadou/archive/2012/02/19/2358514.html
- JavaScript 中的有限状态机
http://www.ibm.com/developerworks/cn/web/wa-finitemach/ JavaScript 中的有限状态机 Page navigation 系列文章 有限状态 ...
- 在Javascript中使用面向对象的编程
by Mike Koss March 26th, 2003 这是一篇,我个人认为最好的,Javascript面向对象编程的文章.翻译不好的地方,还望大家指正,谢谢. 如果您需要,可以访问下面的地址取得 ...
- 取出url中的字符_如何在JavaScript中解析URL:例如主机名,路径名,查询,哈希?...
统一资源定位符(缩写URL)是对Web资源(网页,图像,文件)的引用.URL指定资源位置和检索资源的机制(http,ftp,mailto). 例如,这是此博客文章的URL: 通常,您需要访问URL的特 ...
- 在javascript中判断类型
String 一个字符串始终是一个字符串,所以这一块是很容易.除非使用new(new String)调用,否则typeof将返回"object".所以也要包含那些可以使用的字符串i ...
最新文章
- 实现Activity的滑动返回效果
- 人如其名(退了51CTO的群)
- python调用高德地图api 可视化_Python:利用高德地图API实现找房
- 求阶乘的和(信息学奥赛一本通-T1091)
- 关于InnoDB索引长度限制的tips
- CentOS7上使用bind9搭建DNS主从服务器
- Numpy入门(详看注释)
- Gym 100963B
- linux 小度wifi,树莓派2小度wifi(MT7601U)驱动
- 智能电动自行车充电桩系统解决方案
- Moore-Penrose广义逆(加号广义逆)定义及相关性质
- Cocos Creator:高效率内容生产,引领全平台制霸!
- 七款好用的项目管理软件
- 数组的定义,一维数组,二维数组与变长数组
- 接口文档应该如何编写
- 企业局域网管理软件_为何要进行内部局域网管理
- 上海交通大学计算机学院录取分数线,湖南省多少名可以进上海交大?附上海交通大学近三年录取分数线...
- 仅仅允许本校报考?多所985/211大学计算机第二学士学位
- 如何用数学课件制作工具画角平分线
- 【逻辑思维】马粪争夺案