JS里的数据类型转换

在js中,数据类型转换分为显式数据类型转换和隐式数据类型转换。

1, 显式数据类型转换

a:转数字:

1)Number转换:

代码:
var a = “123”;

a = Number(a);

注意:

a) 如果转换的内容本身就是一个数值类型的字符串,那么将来在转换的时候会返回自己。

b) 如果转换的内容本身不是一个数值类型的字符串,那么在转换的时候结果是NaN.

c) 如果要转换的内容是空的字符串,那以转换的结果是0.

d) 如果是其它的字符,那么将来在转换的时候结果是NaN.

2)parseInt():

代码:

var a = “123”; a = parseInt(a);

a) 忽略字符串前面的空格,直至找到第一个非空字符,还会将数字后面的非数字的字符串去掉。

b) 如果第一个字符不是数字符号或者负号,返回NaN

c) 会将小数取整。(向下取整)

3)parseFloat();//浮点数(小数)

与parseInt一样,唯一区别是parseFloat可以保留小数。

b.转字符串

可以将其它的数据类型转成字符串。

1)String():

代码:
var a = 123;

a = String(a);
2)toString()的方法来进行转换(包装类)。

代码:

var a = 123; a = a.toString();

undefined,``null``不能用toString。

c.转boolean类型:

可以将其它类型转为boolean值:

Boolean():

代码:

var a =”true”; a = Boolean(a);

注意:在进行boolean转换的时候所有的内容在转换以后结果都是true,除了:false、""(空字符串)、0、NaN、undefined

2,隐式转换

a) 转number:

var a = “123”;

a = +a;

加减乘除以及最余都可以让字符串隐式转换成number.

b) 转string:

var a = 123;

a = a + “”;

c) 转boolean:

var a = 123;

a = !!a;

普通类型和对象(复杂类型)的区别
对于普通类型的数据来说,赋值就是深拷贝。
对于复杂类型的数据(对象)来说,才要区分浅拷贝和深拷贝。
基本数据类型(primitive)的引用和引用所指的对象都存储在栈(stack)中,
而复杂类型(object)的引用存储在栈(stack)中,他所指的对象存储在堆(heap)中。

var a = 1
var b = a
b = 2 
//这个时候改变 b,a 完全不受 b 的影响,这是一个深复制

var a = {name: 'frank'}
var b = a
b.name = 'b'
a.name === 'b' // true
//这是一个浅拷贝,因为a也变了
深拷贝就是对 Heap 内存进行完全的拷贝。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:之前的博客介绍了JS中的各种数据类型,那么可不可以把已经确定的数据类型转换成其他的数据类型呢?本文就将介绍一...
    EnochQin阅读 3,649评论 0 3
  • 内容: 类型转换 五个falsy值 内存图 垃圾回收 深浅拷贝 强制转换 一. 任意类型转Number 五种...
    加油吧_阅读 1,202评论 0 0
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,670评论 0 13
  • 一、数据类型转换 Anything-->string① ''+?转成字符串的简便方法1+1=2; 1+'1'='1...
    Camilia_yang阅读 2,929评论 0 0
  • 出镜人物:《梅尔罗斯》卷福,《金秘书为何这样》李英俊,郑爽 1不幸童年的影响有多大 你看看卷福的《梅尔罗斯...
    FreeCrazy阅读 3,971评论 0 0