数据类型
为什么有数据类型?
在计算机中,不同的数据所需占用的存储空间是不同的,为了便于把数据分成所需内存大小不同的数据,充分利用存储空间,于是定义不同的数据类型
简单来说了,数据类型就是数据的;类别型号。比如姓名“张三” ,年龄18 这些数据的类型是不一样的
变量 数据类型
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。JavaScript 是一种弱类型或者说动态语言。这意味着不用提前声明变量的类型,在程序运行过程中,类型会被自动确定。
var age = 10; //这是一个数字串
var areyouok = '是的'; //这是一个字符串
在代码运行时,变量的数据类型是由JS引擎根据= 右边变量值的数据类型来判断的,运行完毕之后,变量就能确定数据类型
JS拥有动态类型,同时也意味着相同的变量可用作不同类型
var x = 6; //x 为数字
var x = 'bilibili'; //x为字符串
数据类型的分类
JS根据类型分为两大类
-
简单数据类型(Number, String,Boolean,Undefined,Null)
-
复杂数据类型
简单数据类型
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
数字型
var age = 21; //整数
var Age = 21.3747; //小数
数字型进制
最常见的进制有二进制、八进制、十进制、十六进制
// 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
数字型范围
JS中数值的最大和最小值
alert(Number.MAX_VALUE); //1.796941448
alert(Number.MIN_VALUE); //5e-324
数字型三个特殊值
alert(infinity); //infinity
alert(-infinity); //-infinity
alert(NaN); //NaN
-
infinity 代表无穷大,大于任何数值
-
-infinity 代表无穷小 小于任何数值
-
NaN not a number 代表一个非数值
得不出一个数字 就会显示NaN
数字型
isNaN()
用来判断一个变量是否为非数字的类型,返回ture 或 false
isNaN(x) x是数字 返回false
x 不是数字 返回ture x是一个非数字类型
字符串型string
字符串型可以是引号中的任意文本,其语法为双引号 和 单引号
字符串引号嵌套
JS可以用单号嵌套双引号,或用双引号嵌套单引号 (外双内单,外单内双)
字符串转义符
类似HTML里面特殊字符,字符串也有特殊字符,我们称之为转义符
转义符都是\ 开头的 常用的转义符及其说明如下
\n 换行符 n是newline意思 重点
\ 斜杠\
\'
'单引号
\"
"双引号
\t
tab缩进 重点\b 空格 b 是 blank意思
字符串长度
字符串是由若干个字符组成的,这些字符的数量就是字符串的长度。通过字符串的length 属性可以获取整个字符串的长度
算上空格 一共15个字符
字符串拼接
-
多个字符串之间可以使用 + 进行拼接,其拼接方式 为 字符串 + 任何类型 = 拼接之后的新字符串
-
拼接前会把与字符相加的任何类型转成字符串,再拼接成一个新的字符串
+号总结口诀:数值相加,字符相连
字符串拼接加强
-
经常会将字符串来拼接,因为变量可以很方便的修改里面的值
-
变量是不能添加引号 ,因为加引号会变成字符串
-
如果变量两侧都有字符串拼接,口诀“引引加加” 删掉数字,变量写加中间
今年多少岁案例分析
交互变成的三个基本要素:
-
你喜欢我吗? ->这是用户输入
-
女孩想了想- > 这是 程序内部处理
-
最后给你一巴掌 -> 这是 输出结果
程序中要如何实现?
-
弹出一个输入框(prompt)让用户输入年龄(用户输入)
-
把用户输入的值用变量保存起来,把刚才输入的年龄与所输出的字符串拼接(程序内部处理)
-
使用alert 语句弹出警示框(输出结果)
布尔型Boolean
布尔型有两个值,true 和 false 其中true表示真(对) 而false 表示加 假(错)
布尔型 数字型相加的时候,true的值为1 , false的值为0
Undefined 和 Null
一个声明后没有被赋值的变量会有一个默认值undefined (如果进行相连或者相加时, 注意结果)
一个声明变量给null值,里面存的值为空(学习对象时,再继续研究null)
获取变量数据类型
获取检测变量的数据类型
typeof 可用来获取检测变量的数据类型
数字是蓝色 字符串是黑色 深蓝色是boolean 浅灰色undefined null
字面量
-
数字字面量:8,9,10
-
字符串字面量:‘黑马程序员’ “大前端”
-
布尔字面量:true, false
数据类型的转换
什么是数据类型的转换?
使用表单、prompt获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算,而需要转换变量的数据类型。通俗来说,就是把一种数据类型的变量转换成另外一种数据类型
实现三种方式的转换:
-
转换为字符串类型
-
转换为数字型
-
转换为布尔型
-
toString() 和 String() 使用方式不一样
-
三种转换方式,更喜欢用第三种加号拼接字符串转换方式,这一种方式也称之为隐式转换
转换为数字型(重点)
parseInt(string)函数 也不存在四舍五入的方法 不要小数点后面的数 单位去掉
-
注意parseInt 和 parseFloat 单词的大小写,这2个是重点
计算年龄案例
要求在叶念中弹出一个输入框,输入出生年份后,能计算出年龄
案例分析
①弹出一个输入框(prompt),让用户输入出生年份(用户输入)
②把用户输入的值用变量保存起来,然后用今年的年份减去变量值,结果就是现在的年龄(程序内部处理)
③弹出警示框(alert),把计算的结果输出(输出结果)
用了减法 转换为字串符 利用字串符增加知识
简单加法器案例
计算两个数的值,用户输入第一个值后,继续弹出第二个出入框并输入第二个值,最后通过弹出窗口显示出两次输入值相加的结果
-
先弹出第一个输入框,提示用户输入第一个值 保存起来
-
再弹出第二个框,提示用户输入第二个值 保存起来
-
把这两个值相加,并将结果赋给新的变量(注意数据类型转换)
-
弹出警示框(alert)把计算结果输出(输出结果)
转换为布尔型
Boolean 其他类型转成布尔值,Boolean('true');
-
代表空、否定的值会被转换为false 如 '' 0 NaN null undefined
-
其余的值都会被转换为true