数据类型
为什么需要数据类型
- 在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利 用存储空间,于是定义了不同的数据类型。 简单来说,数据类型就是数据的类别型号。比如姓名“张三”,年龄18,这些数据的类型是不一样的。
- 变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的 内存中。JavaScript 是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会 被自动确定。
var age = 10; // 这是一个数字型
var sty = '你好,javascript;'; // 这是一个字符串
- 在代码运行时,变量的数据类型是由 JS引擎 根据 = 右边变量值的数据类型来判断的,运行完毕之后, 变量就确定 了数据类型。
- JavaScript 拥有动态类型,同时也意味着相同的变量可用作不同的类型
数据类型
JS 把数据类型分为两类:
- 简单数据类型 (Number String Boolean Undefined Null)
- number 数字型,包含了整型和浮点型(10,15.2,0.2)
- string 字符串型,‘张三’,“李四” (字符串都带有双引号或者单引号)
- boolean 布尔值 false ,true 等价于0和1
- undefined 声明了未定义,声明变量a 但是a并未赋值此时a为undefined
- null 空值 var a = null 声明了变量a为空
- 复杂数据类型 (object)
number 数字类型
- 最大值:Number.MAX_VALUE,这个值为: 1.7976931348623157e+308
- 最小值:Number.MIN_VALUE,这个值为:5e-324
- Infinity ,代表无穷大,大于任何数值
- -Infinity ,代表无穷小,小于任何数值
- NaN ,Not a number,是计算机科学中数值数据类型的一类值,表示未定义或不可表示的值。常在浮点数运算中出现
string字符串类型
- 可以是引号中的任意文本,其语法为 双引号 “” 和 单引号’‘
- 因为 HTML 标签里面的属性使用的是双引号,JS 这里我们更推荐使用单引号。
- 字符串拥有length属性,字符串长度
var strMsg = "你好,javascript;";
// 使用双引号表示字符串
var strMsg2 = '你好,javascript';
// 使用单引号表示字符串 常见错误
var strMsg3 = 你好,javascript;
// 报错,没使用引号,会被认为是js代码,但js没有这些语法
/*
转义字符
类似HTML里面的特殊字符,字符串中也有特殊字符,
我们称之为转义符。
转义符都是 \ 开头的,常用的转义符及其说明如下:
*/
'\n 换行'
'\t 缩进'
'\b 空格'
//字符串拥有length属性,字符串长度
var str = '你好JavaScript'
console.log(str.length)//长度为12
- 字符串拼接
- 多个字符串之间可以使用 + 进行拼接,其拼接方式为 字符串 + 任何类型 = 拼接之后的新字符串
- 拼接前会把与字符串相加的任何类型转成字符串,再拼接成一个新的字符串
//字符串 "相加"
alert('hello' + ' ' + 'world'); // hello world
//数值字符串 "相加"
alert('100' + '100'); // 100100
//数值字符串 + 数值
alert('11' + 12); // 1112
布尔型 Boolean
- 布尔类型有两个值:true 和 false ,其中 true 表示真(对),而 false 表示假(错)。
- 布尔型和数字型相加的时候, true 的值为 1 ,false 的值为 0。
console.log(true + 1); // 2
console.log(false + 1); // 1
Undefined
- 声明后没有被赋值的变量会有一个默认值 undefined ( 如果进行相连或者相加时,注意结果)
var variable;
console.log(variable); // undefined
console.log('你好' + variable); // 你好undefined
console.log(11 + variable); //
NaN console.log(true + variable); // NaN
null
一个声明变量给 null 值,里面存的值为空
var vari = null;
console.log('你好' + vari); // 你好null
console.log(11 + vari); // 11
console.log(true + vari); // 1
检测数据类型
- 使用typeof 检测数据类型
- typeof 运算符把类型信息当作字符串返回。
- typeof 返回值有六种可能: “number,” “string,” “boolean,” “object,” “function,” 和 “undefined”
var a = 1;
console.log(typeof a) ; // number
var str = '你好javascript~';
console.log(typeof str) ;// string
字面量
顾名思义,就是字面意思
字面量是在源代码中一个固定值的表示法,通俗来说,就是字面量表示如何表达这个值。
var a = 1;//这里的1就是字面量
数字字面量:8, 9, 10
字符串字面量:‘程序员’, “大前端”
布尔字面量:true,false