JavaScript数据类型

JavaScript是一种弱类型语言,在定义变量时不需要指定类型,一个变量可以存储任何类型的值。不过这并不等于JavaScript不区分数据类型,只不过在运算时,JavaScript能自动转换数据类型。但是在特定条件下,还需要用户了解JavaScript的数据类型。

在JavaScript中,数据存在两种截然不同的存储方式。其中一种是直接存储数据,称为值类型数据;另一种是存储数据的空间地址来间接保存数据,称为引用型数据。不同类型的数据,它们的行为方式存在很大的不同。

数值

JavaScript包含3种基本数据类型:数值、字符串、布尔值。
JavaScript数值是不区分整型和浮点数,所有数值都为浮点型数值来表示。
除了基本的算数运算外,JavaScript还提供大量的算数函数,以支持复杂的算数运算,这些函数都被包含在Math内置对象中,称为JavaScript的核心。
使用toString()方法可以把数值转换为字符串。

示例:使用toString()方法把数值100转换为字符串,然后使用typeof()方法验证转换后的数据类型

var a = 100;
var c = a.toString();//转换为字符串
alert(typeof(c));//返回string


另一种方式:

var a = 100;
var c = a + "";
alert(typeof(c));

JavaScript定义的特殊值:

说明
Infinity 无穷大
NaN 非数值
Number.MAX_VALUE 可表示的最大数值
Number.MIN_VALUE 可表示的最小数值
Number.NaN 非数值
Number.POSITIVE_INFINITY 正无穷大
Number.NEGATIVE_INFINITY 负无穷大

字符串

字符串由Unicode字符、数字、标点符号等组成的字符序列,字符串处必须使用单引号或双引号包括起来。单引号可以包含双引号,双引号中也可以包含单引号。若有字符应该在同一行内容书写。

示例:

var str = "字符串序列";        //简单的字符串
var str = "'JavaScript'不是'Java'";//包含单引号的字符串
var str = '<meta charset = "utf-8">';   //HTMl字符串

使用parseInt()和parseFloat()方法可以把字符串转换为数值:

var str = "123.30";
var a = parseInt(str);//返回数值123
var b = parseFloat(str);//返回数值123.3

便捷方法:让字符串与1相乘,即可把字符串转换为数值

var str = "123.30";
var a = str * 1;
alert(typeof a);

布尔型

布尔型数据仅包括2个值:true和false,它们分别表示逻辑的真和假。布尔值多用在逻辑运算、比较运算中,或者作为条件语句或运算符的条件而使用。

要把任何值转换为布尔型数据,在值的前面增加两个叹号即可。
示例:

var a = 100;
var c = !!a;
alert(c);
alert(typeof c);
  • 任何非0数字转换为布尔值后为true,而0转换为布尔值为false。
  • 任何非空字符串转换为布尔值后为true,而空格转换为布尔值为false。
  • 如果把布尔值转换为字符串,则true为“true”,false为“false”。

示例:

var b = false;
a = a + "";//值为“true”
b = b + "";//值为“false”

如果把布尔值转换为数值,则true为1,false为0.

var a = true;
var b = false;
a = a * 1;//值为1
b = b * 1;//值为0

JavaScript语法系统拥有一大组假值,具体如下。这些值的布尔值都是false。

0 //Number
NaN //Number
'' //String
false //Boolean
null //Object
undefined //Undefined

null和undefined:
在JavaScript中由两个特殊类型的值:null和undefined。它们的行为非常相似,含义和用法也差不多,它们同时存在,并一致沿用到现在,是早期JavaScript语言不成熟的产物。

null是Null类型的值,Null类型的值只有一个值(null),它表示空值。
如果当一个变量的值为null,则表明它的值不是有效的对象、数组、数值、字符串和布尔型等。如果使用typeof运算符检测null值的类型,则返回object,说明它是一种特殊的对象。
undefined表示未定义的值,当变量未初始化值时,会默认其值为undefined。区别任何对象、数组、数值、字符串和布尔型。使用typeof运算符检测undefined的类型,返回值为undefined。

引用型数据

除了3种基本数据类型和两种特殊数据类型外,JavaScript还提供3种复杂的数据类型。这些类型数据一般引用特定位置的值,故称为引用型数据。

引用型数据包括:数组、对象和函数等。

JS--JavaScript数据类型(数值、字符串、布尔值)详解相关推荐

  1. python对输入的字符串进行解析_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  2. python加密字符串小写字母循环后错两位_python数据类型_字符串常用操作(详解)

    这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 ...

  3. 数值和布尔值的解构赋值

    数值和布尔值的解构赋值 解构赋值时,如果等号右边是数值和布尔值,则会先转为对象. let {toString: s} = 123; s === Number.prototype.toString // ...

  4. JavaScript Promise返回值详解

    JavaScript Promise返回值详解 Promise回顾 Promise回调函数返回非Promise值 Promise回调函数返回Promise对象 Promise回调函数中抛出错误 总结 ...

  5. vue.js循环for(列表渲染)详解

    vue.js循环for(列表渲染)详解 一.总结 一句话总结: v-for <ul id="example-1"> <li v-for="item in ...

  6. JavaScript 面试中常见算法问题详解

    JavaScript 面试中常见算法问题详解,翻译自 https://github.com/kennymkchan/interview-questions-in-javascript.下文提到的很多问 ...

  7. html+css+javascript实现小游戏2048(详解,附源代码)

    html+css+javascript实现小游戏2048(详解,附源代码) 1.上下左右的移动原理相同,这里只详细说明向上移动的方法 2.这里的上下左右由wasd四个键控制 3-小方块空的意思就是没数 ...

  8. pythontuple数据类型_Python数据类型之Tuple元组实例详解

    本文实例讲述了Python数据类型之Tuple元组.分享给大家供大家参考,具体如下: tuple元组 1.概述 本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用()表示. 特点:一 ...

  9. php读音量大小,Android_Android中实时获取音量分贝值详解,基础知识 度量声音强度,大 - phpStudy...

    Android中实时获取音量分贝值详解 基础知识 度量声音强度,大家最熟悉的单位就是分贝(decibel,缩写为dB).这是一个无纲量的相对单位,计算公式如下: 分子是测量值的声压,分母是参考值的声压 ...

  10. c语言数据类型int的用法,C语言基本数据类型:整型(int)用法详解|C语言学习

    C语言基本数据类型:整型(int)用法详解 1. 整型 int C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int 是整型之一,一般被称为整型.以后, ...

最新文章

  1. webservice(基础)
  2. excel 表格lookup 的操作
  3. 安卓USB开发教程 三 USB Accessory
  4. SaltStack Salt 开源管理框架修复2个严重漏洞,多款开源产品等受影响
  5. 浮动特性-脱标(HTML、CSS)
  6. 什么是dispatchEvent?
  7. ubuntu20.04安装simhei字体--jupyter中文显示框框的解决方案
  8. 京东准点秒杀脚本【2020】
  9. “枪型思维”产品设计新探索 | 基金持仓诊断
  10. 2020年,抖音赚钱全攻略,做抖音,看这就够了!
  11. 灰色预测模型MATLAB代码及使用
  12. html文字段落设置,css中怎么设置段落样式?
  13. 应用基准化分析—Benchmark
  14. 80后90后这一代实在太苦了,什么都赶上了,只有程序员工资还高一点,唉
  15. 泰拉瑞亚加mod之后如何搭建服务器进行联机
  16. devops学习(十) Jenkins 流水线
  17. 读冯友兰之《中国哲学简史》
  18. iis php cpu负荷过大,解决IIS占用CPU和内存大的问题
  19. Windows下载Hadoop,本地执行MapReduce
  20. 23王道数据结构代码题全解(三)

热门文章

  1. 码云,git使用 教程
  2. PSCP工具的使用教程
  3. libjpeg php,使用GD和libjpeg支持编译PHP
  4. NVIDIA Jetson TX1(2)
  5. 调研分析-全球与中国可堆叠USB连接器市场现状及未来发展趋势
  6. java 遍历map key_java 遍历Map的四种方式
  7. hisi3516上调试mpu6500
  8. django中常用的数据查询方法
  9. 【Pandas】筛选某列过滤
  10. 国内专利申请相关概念综述