数据类型简介
为什么需要数据类型?
在计算机中,不同的数据所占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义了不同的数据类型。
简单来说,数据类型结束数据类型的类型型号。比如姓名“张三”,年龄18,这些数据的类型是不一样的。
变量的数据类型
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。JavaScript是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
var age = 10; //这是一个数字型
var areYouOK = '是的'; //这是一个字符串
在代码运行时,变量的数据类型是由JS引擎根据=右边的变量值的数据类型来判断的,运行完毕之后,变量就确定了数据类型。
JavaScript拥有动态类型,同时也意味着相同的变量可作不同的类型:
var x = 6; //x为数字
var x = "bill" //x为字符串
数据类型的分类
JS把数据类型分为两类:
- 简单数据类型(Number、String、Boolean、Undefined、Null)
- 复杂的数据类型(object)
简单数据类型(基本数据类型)
JavaScript中的简单数据类型及其说明如下:
简单数据类型 | 说明 | 默认值 |
---|---|---|
Number | 数字型,包含整型值和浮点型,如21/0.21 | 0 |
Boolean | 布尔值类型,如true、false,等价于1和0 | false |
String | 字符串类型,如"张三"注意咱们js里面,字符串都带引号 | "" |
Undefined | var a; 声明了变量a但是没有给值,此时a=undefined | undefined |
Null | var a = null;声明了变量a为空值 | null |
数字型Number
JavaScript数字类型既可以用来保存整数值,也可以保存小数(浮点数)。
var age = 21; //整数
var Age = 21.7347 //小数
数字型进制
常见的进制用二进制、八进制、十进制、十六进制。
//1.八进制数字序列范围:0~7
var num1 = 07; //对应十进制的7
var num2 = 019; //对应十进制的19
var num3 = 08; //对应十进制的8
//2.十六进制数字序列范围:0~9以及A~F
var num = 0xA
在JS中八进制前面加0,十六进制前面加0x
数字型范围
JavaScript中数值的最大和最小值
alert(Number.MAX_VALUE); //1.7976931348623157e+308
alert(Number.MIN_CALUE); //5e-324
数字型三个特殊值
alert(Infinity); //Infinity
alert(-Infimty); //-Infinity
alert(NaN); //NaN
- Infinity,代表无穷大,大于任何数值
- -lnfinity,代表无穷小,小于任何数值
- NaN,Not a number,代表一个非数值
isNan()
用来判断一个变量是否为非数字的类型,返回true或者false
// isNaN() 这个方法用来判断非数字 并且返回一个值 如果是数字返回的是false 如果不是数字返回的是true
console.log(isNaN(12)); //false
console.log(isNaN("芜湖")); //true
字符串型String
字符串型是引号中任意文本,其语法为双引号'' ''和单引号' '
var strMsg = "我爱吃榴莲~" //使用双引号表示字符串
var strMsg2 = '我爱吃猪脚饭~' //使用单引号表示字符串
// 常见错误
var strMsg3 = 我爱吃猪脚饭~; //报错,没使用引号,会被认为是js代码,但js没有这些语法
因为HTML标签里面的属性使用的是双引号,js这里我们更推荐使用单引号。
字符串引号嵌套
JS可以使用单引号嵌套双引号,或者双引号嵌套单引号(外双内单,外单内双)
var strMsg = '我是"小学生"小明'; //可以用''包含""
var strMsg2 = "我是'小学生'小明"; //可以用""包含''
// 常见错误
var badOuotes = 'What on earth?"; //报错,不能单双引号搭配
字符串转义符
类似HTML里面的特殊字符,字符串中也有特殊符号,我们称之为转义符。
转义符都是开头的,常用的转义符及其说明如下:
转义符 | 解释说明 |
---|---|
n | 换行符,n是newline的意思 |
\ | 斜杆\ |
' | ' 单引号 |
\" | " 双引号 |
t | tab 缩进 |
b | 空格,b是blank的意思 |
案例:弹出警示框
酷热难耐,火辣辣的太阳底下,我挺拔的身姿,成为了最为独特的风景。我审视四周,这里,是我的舞台,我就是天地间的王者。这一刻,我豪气冲天,终于大喊一声:"收破烂啦~"
代码:
alert('酷热难耐,火辣辣的太阳底下,我挺拔的身姿,成为了最为独特的风景。\n' + '我审视四周,这里,' + '是我的舞台,我就是天地间的王者。\n这一刻,我豪气冲天,终于大喊一声:"收破烂啦~"')
思路:
当里面有双引号显示时使用外单内双的原则
使用n进行换行
效果:
字符串长度
字符串是由若干个字符组成的,这些字符的数量就是字符串的长度。通过字符串的length属性可以获取整个字符串的长度
// 1.检测获取字符串的长度 length
var str = 'my name is andy'
console.log(str.length) //显示15个字符串
字符串的拼接
多个字符串之间可以使用+进行拼接,其拼接方式为字符串+任何类型=拼接后的新字符串
拼接前会把字符串相加的任何类型转成字符串,再拼接一个新的字符串
// 2.字符串的拼接 + 只要有字符串和其他类型相接 最终的结果是字符串类型
console.log('数码'+'宝贝'); //字符串类型的 数码宝贝
var age = 18;
console.log('我'+age+'岁了'); //字符串类型的 我18岁了
console.log('pink' + true); //pinktrue
console.log(12 + 12); //24
console.log("12"+ 12);//字符串类型的 1212
+号总结口决:数值相加,字符相连
- 我们经常会将字符串和变量来拼接,因为变量可以很方便地修改里面的值
- 变量是不能添加引号的,因为加引号的变量会变成字符串
- 如果变量两侧都有字符串拼接,口决“引引加加”,删掉数字,变量写中间
案例:显示年龄
弹出一个输入框,需要用户输入年龄,之后弹出一个警式框显示“您今年xx岁啦”(xx表示刚才输入的年龄)
代码:
var age = prompt('请输入你的年龄');
var str = '您今年已经'+age+'岁了';
alert(str);
效果:
思路:
利用js编写一个非常简单的交互效果程序。
交互效果的三个基本要素:
- 你喜欢我吗?---->这是 用户输入
- 女孩想了想 ---->这是 程序内部处理
- 最后给了你一巴掌 ---->这是 输出结果
那么在程序中如何实现呢?
- 弹出一个输入框(prompt),让用户输入年龄(用户输入)
- 把永恒输入的值用变量保存起来,把过程输入的年龄与所要输入的字符串拼接(程序内部处理)
- 使用alert语句弹出警式框(输出结果)
布尔型Boolean
布尔型有两个值:true 和 false,其中true表示真(对),而false表示假(错)。
布尔型和数字型相加的时候,true的值为1,false的值为0。
console.log(true + 1); //2
console.log(false + 1); //1
Undefined和Null
一个声明后没有赋值的变量会有一个默认值undefined(如果进行相连或者相加时,注意结果)
var variable;
console.log(variable); //undefined
console.log('你好' + variable); //你好undefined
console.log(11 + variable); //NaN
console.log(true + variable); //NaN
一个声明变量给null值,里面存的值为空
var vari = null;
console.log('你好' + vari); //你好null
console.log(11 + vari); //11
console.log(true + vari); //1