开发者社区> 问答> 正文

JavaScript数据类型


在JavaScript中有几种基础数据类型,也可以通过这几种基础数据类型来构成复杂一些的数据类型。

一、字符串类型


字符串类型(string):由双引号或单引号构成的数据类型,如:”aaa”,’bbb’
数据转换

string" class="reference-link" style="color: rgb(31, 26, 23);">1.number -> string


1.构造函数转换

  • console.log(String(123456789));
  • console.log(new String(123456789).valueOf());

2.内部js引擎转换
  • console.log(typeof ("" + 123456));

输出结果:string
3.toString()
  • console.log(typeof (123456).toString());
  • console.log(typeof 123456..toString());

输出结果:string
2.boolean -> string
1.构造函数转换
  • console.log(typeof String(false));

输出结果:string
3.object -> string
  • var o = {
  •     k1:"v1",
  •     k2:333
  • }
  • console.log(JSON.stringify(o));

输出结果:{"k1":"v1","k2":333}

二、数字类型


数字类型(number):分为整数(如:12,15)和浮点数(如:12.5)
数据转换

number" class="reference-link" style="color: rgb(31, 26, 23);">string -> number


1.构造函数转换
  • console.log(Number("123")); // 123
  • console.log(typeof Number("123")); // number

2.通过parseInt,parseFloat方式
  • console.log(parseInt("332255"), parseFloat("8899.322"));

输出结果:332255 8899.322
构造函数转换与parseInt区别
  • console.log(Number(""), parseInt(""));

输出结果:0 NaN,说明构造函数将空的字符串转换成零,而parseInt则将空字符串当作不存在。
  • console.log(Number(false), parseInt(false));
  • console.log(Number(null), parseInt(null));
  • console.log(Number(undefined), parseInt(undefined));

输出结果前两个都是:0 NaN,第三个输出:NaN NaN

三、布尔类型


布尔类型(boolean)只有两个值,分别为true和false
数据转换

boolean" class="reference-link" style="color: rgb(31, 26, 23);">1.string -> boolean


1.引擎的转换
  • var s = "";
  • // 这里会把s空的字符串("")转换成false
  • // 更类似于重新在内部创建了一个变量,把s变成false;var s2 = false;
  • if(s) {
  •     console.log("true");
  • }else{
  •     console.log("false")
  • }

运行结果:false
2.构造函数的转换
  • var s = "";
  • console.log(new Boolean(s));

输出结果:[Boolean: false]
3.!!操作
  • var s = "";
  • console.log(!!s);

输出结果:false

boolean" class="reference-link" style="color: rgb(31, 26, 23);">2.number -> boolean


1.引擎的转换
  • var s = 0;
  • if(s) { // 0 -> false
  •     console.log("true");
  • }else{
  •     console.log("false")
  • }

输出结果:false
2.构造函数转换
  • var s = 0;
  • console.log(new Boolean(s));

输出结果:[Boolean: false]
3.!!操作
  • var s = 0;
  • console.log(!!s);

输出结果:false

四、特殊类型


特殊类型:常见的有null表示空;undefined表示未定义类型,未赋值类型;object类型,其它自定义类型都继承自object类型,它内部还有一些object类,比如:Array,function
  • let o1 = null;
  • console.log(o1); // null
  • let me;
  • console.log(me); // undefined


五、类型判断


可以通过一个命令(typeof)测试出一个数据的类型
  • typeof "fdsafdsa" // string
  • typeof 15 // number
  • typeof false // boolean
  • typeof undefined // undefined
  • typeof abc // undefined
  • typeof {name: "张三"} // object
  • typeof null // object
  • typeof function(){} // function

示例
  • function add(a,b) {
  •     if(typeof a === "number" && typeof b === "number") {
  •         console.log(a+b);
  •     }else{
  •         console.log("a和b必须是number类型")
  •     }
  • }
  • add(12,8);

这里使用typeof判断,a和b都是数字类型的时候才会相加,否则输出a和b必须是number类型。

六、数据基础类型和对象的类型



1.数据基础类型(纯粹的数据)

  • 12 // number
  • "abc" // string
  • false // boolean
  • true // boolean
  • null
  • undefined


2.对象的类型


在编程当中,所有的对象都具备属性和方法;而纯粹的数据是不具备属性和方法的;
  • console.log(); // 其中console是本身的对象,log是对象的方法
  • var o = new Number(12); // 有类型的对象,类型是Number
  • var o2 = new String("abc"); // 数据:"abc" 类型:String   "abc" + String = 字符串对象

展开
收起
chenchuan 2018-08-31 22:57:18 2363 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载