JavaScript基础之基本数据类型(值类型)详解

数据类型

数据类型是指可以在程序中存储和操作的值的类型,每种编程语言都有其支持的数据类型,不同的数据类型用来存储不同的数据,例如文本,数字等

JavaScript是一种弱类型语言,在定义变量时不需要提前指定变量的类型,变量的类型是在程序运行过程中由JavaScript引擎动态决定的。

JavaScript也是一种动态类型语言,这意味着变量不与特定类型关联。所以可以这么说,一个变量可以用来存储不同类型的数据。例如:

var a   //此时a为undefined
a="hello world"  //a现在为string类型
a=1   //a现在为number类型

基本数据类型(值类型):

数据类型 实例 说明
Number 12,-1,17.23,3.1E-2 数值型数据
String “message”,“str”,“name” 字符型数据,需加英文双引号单引号
Boolean true,false 布尔型数据,不用加引号,表示逻辑真与假
Undefined undefined javaScript中未定义的值
Null null 表示空值

通过 typeof 操作符可以检测数据类型,也就是返回变量的数据类型

typeof操作符有带括号和不带括号两种写法

typeof x; //作为运算符的形式--获取变量x的数据类型
typeof(x); //作为函数形式--获取变量x的数据类型

实例:

<script>
			var a=1; 
			var b="message";
			var c=true; 
			
			console.log(typeof a); //输出数据类型为number
			console.log(typeof b); //输出数据类型为string
			console.log(typeof c); //输出数据类型为boolean
</script>

注意:

  • JS 是弱数据类型,变量到底属于那种类型,只有赋值之后,我们才能确认

  • 例如Java是强数据类型 例如 int a = 3 必须是整数

基本数据类型

数值类型(Number)

Number型数据即为数值型数据用来表示整数和浮点数。

JavaScript 中的数值类型与数学中的数字是一样的,分为正数、负数、小数等。

整数型数值可以使用十进制、八进制以及十六进制标识

  • 十进制:直接使用数字表示,例如:123、456等。
  • 八进制:以0开头,例如:010、077等。
  • 十六进制:以0x或0X开头,例如:0xFF、0x3F等。
var numn1=1;  //十进制,输出值为1
var numn12=-23; //十进制,输出值为-23
var numn2=0177;//八进制,输出值为127
var numn3=0xA3;//十六进制,输出值为163
console.log(numn1,numn2,numn3);//输出值为1,127,163

需要注意的是,当你在JavaScript中使用八进制或十六进制数值时,它们会被自动转换为十进制表示。例如,010会被解释为十进制的8,0xFF会被解释为十进制的255。

浮点数是指包含小数点的实数,且可用科学计数法来表示。科学计数法一般用于值极大或者极小的时候。

	//Number--浮点数
	var numfloat=1.23;  //输出值为1.23
	var numfloat1=-12.34; //输出值为-12.34
	//科学计算法
	var numfloat2=152e5;  //值是152乘以10的5次方,即15200000
	var numfloat3=152e-5; //值是152乘以10的-5次方,即0.00152

如果浮点数看起来是整数,JavaScript会自动将浮点数转换为整数。

原因是JavaScript总是希望使用更少的内存,因为浮点数使用的内存是整数值的两倍。

var message=120.00;  //JavaScript解释整数为200

Number类型所能定义的数值并不是无限的,JavaScript中的Number类型只能表示-(253-1)(253-1)之间的值

获取Number数字类型的范围

  • Number.MIN_VALUE 的值为 5e-324,这是 Number 类型能够表示的最接近于零的正数。这意味着任何小于 5e-324 的正数都会被 JavaScript 解释为 0
  • Number.MAX_VALUE 的值为 1.7976931348623157e+308,这是 Number 类型能够表示的最大值。这意味着任何大于 1.7976931348623157e+308 的数值都会被 JavaScript 解释为 Infinity。
//Number.MIN_VALUE和Number.MAX_VALUE
	console.log(Number.MAX_VALUE);  //输出值:1.7976931348623157e+308
	console.log(Number.MIN_VALUE);  //输出值:5e-324

这两个属性在处理大量数据或者进行数值范围检查时非常有用。例如,如果你正在处理大量的小数,并且想要检测某个数是否超出了 Number 类型能够表示的范围,你可以使用这两个属性进行比较。

另外,当数值范围超过最大值或最小值时,可以使用Infinity-Infinity来表示无限数

Infinity

  • 当一个数太大,以至于无法用 Number.MAX_VALUE 表示时,JavaScript 会返回 Infinity。
  • 当一个正数除以0时,结果为 Infinity。
  • 使用 Number.POSITIVE_INFINITY可以访问这个值。例如:1 / 0返回 Infinity`。

-Infinity

  • 当一个数太小,以至于无法用 Number.MIN_VALUE 表示时,JavaScript 会返回 -Infinity
  • 当一个负数除以0时,结果为 -Infinity。
  • 使用 Number.NEGATIVE_INFINITY 可以访问这个值。例如:-1 / 0 返回 -Infinity。
console.log(Number.MAX_VALUE+Number.MAX_VALUE);  //输出值:Infinity
console.log(-Number.MAX_VALUE-Number.MAX_VALUE); //输出值:-Infinity

NaN表示值不是数字。他是一个特殊的数值,表示无效数字。当一个操作或计算机结果不是一个有效的数字时,JavaScript会返回NaN

实例:字符串除以数字返回NaN

console.log("a"/2); //NaN

NaN特点

  • 任何与NaN的运算都会返回NaN
  • NaN不等于任何值,包括其本身

实例:

console.log(NaN/2);//NaN
console.log(NaN==NaN);//false

字符串类型(string)

在JavaScript中,字符串是零个或多个字符的序列。JavaScript不区分单个字符和字符串,任何字符或字符串以英文单引号(‘’)或双引号(“”)开头和结尾

通过单引号( ‘’) 、双引号( “”)或反引号(`)包裹的数据都叫字符串,单引号和双引号没有本质上的区别。

特点:

  • 以双引号开头的字符串必须是双引号结尾,以单引号开头的字符串也必须是单引号结尾,以什么引号开头就以什么引号结尾

  • 无论单引号或是双引号必须成对使用

  • 单引号/双引号可以互相嵌套,但是不以自已嵌套自已

  • 必要时可以使用转义符 \ ,输出单引号或双引号

实例:

var user_name = '小明' // 使用单引号
var gender = "男" // 使用双引号
var str = '123' // 看上去是数字,但是用引号包裹了就成了字符串了
var str1 = '' // 这种情况叫空字符串

console.log("hello world")  //hello world
console.log('hello world')  //hello world
console.log("hello 'world'") //hello 'world'
console.log('hello "world"') //hello "world"
console.log(`hello world`)  //hello world
console.log('hello \'world\'') //hello 'world'

JavaScript字符串是不可变的,意味着一旦被创建就无法修改。但是可以从现有字符串创建新字符串。例如:

var str="hello"
str=str+"world"
console.log(str) //输出helloworld 

布尔类型(boolean)

boolean型数据表示的是布尔型数据,它有两个固定的值 true 和 false,表示肯定的数据用 true,表示否定的数据用 false,且任何时刻都只能使用两种状态中的一种,不能同时出现。

实例:

 var chooseA=true  //true
 var chooseB=false //false
·console.log(typeof chooseA,chooseB) //输出值:boolean false

注意:Boolean型变量赋值时,不能在true或false外面加引号,否则就变成字符串(string)型

undefind(未定义型)

undefined型是未定义类型,未定义是比较特殊的类型,只有一个值 undefined。

默认情况下,当声明变量时但未赋值的情况下,变量的默认值为 undefined。

用于不存在或者没有被赋初始值的变量或对象的属性

// 只声明了变量,并末赋值
	var str
	console.log(typeof str)  // 结果为 undefined

注意:JavaScript 中变量的值决定了变量的数据类型。

Null型(空值)

Null型数据表示空值,作用是表明数据空缺的值,只有一个值null。一般在设定已存在的变量(或对象的属性)为空时较为常见。

var str=null
console.log(str) // null

对于null和undefined,一般情况下,JavaScript定义null等于undefined

console.log(null == undefined) //输出值:true

你可能感兴趣的:(JavaScript,javascript,开发语言,ecmascript,前端,计算机)