前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript数据类型

JavaScript数据类型

原创
作者头像
用户9966982
发布2022-11-05 11:34:05
1910
发布2022-11-05 11:34:05
举报
文章被收录于专栏:JavaScript-小川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 = 字符串对象

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档