javascript中的数据类型

一、数据类型概述

在javascript中数据类型可分为两大类:基本数据类型和复杂数据类型。可用typeof()来查看数据类型。

基本数据类型:null、undefined、number,string,boolean。

复杂数据类型:object。

其中对象是object,array是object,function是object,万物皆是对象。

二、数据类型的转化

1、强制转换或显示转换

①、Number()

Number()方法,先看完整个内容,然后整体去转换数字。

如:

console.log(Number("11"));//控制台输出的是:11

console.log(Number("11aaa"));//控制台输出的是:NaN

console.log(Number(["2"]));//控制台输出的是2,此时得到的是数组第0个的值

console.log(Number(["2","3"]));//控制台输出的是NaN

console.log(Number(true));//控制台输出的是1,false输出的是0

②、parseInt()方法,从左向右去查看需要转换的目标,如果碰到一位是非数字的,结束执行,返回之前的数字。不可识别小数点。

如:

console.log(parseInt("111aaa"));//控制台输出111
console.log(parseInt("1.11aa"));//控制台输出1

③、parseFloat()方法,从左向右去查看需要转换的目标,如果碰到一位是非数字的,结束执行,返回之前的数字。可识别小数点。

如:

console.log(parseFloat("1.111aaa"));//控制台输出1.111

④、String()

如:

console.log(String(111));//控制台输出111

⑤、toString()

如:

var str=111;
console,log(str.toString());//控制台输出111

⑥、Boolean()方法 布尔值转换 它对空字符串的转换为false,非空格字符串则为true。真:true,非空字符串,非0数字,非空对象,假: false, 空字符串,0,NaN,null,undefined。

如:

console.log(Boolean("111"));//控制台输出true
console.log(Boolean(""));//控制台输出false
console.log(Boolean(undefined));//控制台输出false
console.log(Boolean(NaN));//控制台输出false
console.log(Boolean(111));//控制台输出true

2、隐示转换

①、当出现+号时,当加号左右两测有一位是字符串是,会把另外一也转成字符串;两边没有字符串时,优先尝试把左右两侧都转换成数字,如果不能转换成数字就转换成字符串进行连接;

如:

console.log("1"+1);//控制台输出11
console.log(1+1);//控制台输出2
console.log(1+true);//控制台输出2
console.log(1+false);//控制台输出1

②、其他运算符

-,*,/,% 这些运算符都是只有数字运算的功能,所以在使用的时候,都会去把其他类型转换成数字。

如:

console.log(3 % "2");//控制台输出0,先把“2”转换成2,再进行计算

③、关系运算符

<、>、<=、>=、、!=、=、!==
比较后都会返回布尔值

== 和 != 会进行隐式类型转换,把左右两侧的数据类型转换成一样的之后,再去比较
=和! 进行比较的时候,也会比较数据类型,数据类型不一样的话,即使值一样,也是false.

&& 与、 || 或 、! 否 返回的结果都是 true和 false。

三、值类型与引用类型

在JavaScript中值类型和引用类型有哪些呢?

值类型:number、boolean、null、undefined、string

引用类型:object、array、function

1、所谓的值类型我们可以理解成复印件,每次要使用都是复印一份新得出来,不会对原件造成影响。

如:

var str1 = "hello world!";
var str2 = str1;
str2="hi world!";
console.log(str1);//控制台输出hello world!
console.log(str2);//控制台输出hi world!

值类型传递变量时其实是分配了一个新的空间,改变值互不影响。

2、所谓的引用类型我们可以理解成原件,每次使用都是使用同一个东西,一旦值发生改变就会对所有有使用的地方发生影响。

如:

var str1 = ["hello world!"];
var str2 = str1;
str2[0]="hi world!";
console.log(str1[0]);//控制台输出hi world!
console.log(str2[0]);//控制台输出hi world!

在示例中,我们可以看到我们只是改变了str[0]的值,str1[0]的值也随之改变,这便是引用类型的特性。

posted on 2018-07-27 14:45  打伞De鱼  阅读(228)  评论(0编辑  收藏  举报