五、数据类型
5.1为什么需要数据类型?
因为不同的数据所占用的存储空间不同,所以有不同数据类型为了方便将数据分成内存大小不同的数据。
5.2js变量的数据类型-超自由
JavaScript是一种弱类型/动态语言,在声明变量时并没有确定它的数据类型,要在程序运行时通过值来确定。
1️⃣js的变量数据类型,由程序运行过程的值来决定
2️⃣js同一个变量的数据类型可用于不同类型
5.3数据类型的分类
(1)简单数据类型(基本数据类型)
Number、String、Boolean、Undefined、Null
5.3.1.1数字型Number
既包含整数,又包含小数(浮点数)
①数字型进制:
前+0表示八进制;前+0x表示十六进制
②数字型范围:
③常用的数字型类型
-最大值:Number.MAX_VALUE,这个值为1.7976931348623157e+308
-最小值:Number.MIN_VALUE,这个值为5e-324
-无穷大:Infinity
-**无穷小: **-Infinity
-非数值:NaN 不是数值的都可以用此表示,一般用于表无法计算的含义
选自英文缩写Not a number。
④is NaN()
is NaN()是用来验证是否为非数字的函数
是数字,返回false;不是数字,返回true
5.3.1.2 字符串型 String
字符串型为引号中的任意文本,语法可为单引号【' '】/双引号【“ ”】
推荐使用单引号,因为html标签属性为双引号
①字符串嵌套
要在字符串可以采用(单引号嵌套双引号 / 双引号嵌套单引号),遵循外双内单/外单内双的原则
②字符串转义符
转义符以/开头,是用于显示JS的特殊字符:
③字符串长度
通过字符串的length属性去获取长度。
<script>//二、内嵌式js var txt = '酷热难耐,火辣的太阳底下,我挺拔的身姿' console.log(txt.length); </script>
④字符串拼接
-
多个字符串可以用+进行拼接,字符串+任何新类型=拼接后的字符串
-
拼接后一定是个字符串类型!!!
"+"口诀:数值相加,字符相连
⑤变量拼接
变量是通过字符串“+”相连的方式哦!
5.3.1.3布尔型Boolean
-
布尔型共有两个值:true和false,其中true为真,false为假
-
js中布尔型和数值型,true当1来看,false当0来看
5.3.1.4Undefined和Null
①一个变量声明但没有赋值时,默认值为undefined--->表示未定义
②一个变量声明给null值,里面存的值为空
注意区分Null和undefined与数值相加的情况
undefined型+字符型==>字符型
undefined型+数值型==>NaN
null+字符型==>字符型
null+数值型==>数值
(2)复杂数据类型
Object
5.4【查看变量类型】
--typeof函数
typeof(空格)变量名可用于获取检测变量所属的数据类型
- 通过typeof检测可以发现,提示框中取到的值是String类型
--看控制台颜色
蓝色->数值型
黑色->字符串
深蓝色->布尔型
浅灰色->undefined和null
--看字面量
六、数据类型转换
【本质】:将一种数据类型转换为另一种
如:表单、prompt获取过来的数据默认是字符串类型的,此时要进行加法运算,就必须先转换其数据类型
- 主要有以下3种方式的转换:
- 转换为字符串类型
- 转换为数字型
- 转换为布尔型
6.1转换为字符串
①变量名.toString()
②String(变量名)
③加号拼接(又称隐式拼接)
6.2转换为数字型
①parseInt(字符串) ->字符串变整数
-
//注意会将字符串的数值进行取整 如:3.19->3
-
从前向后识别,出错就暂停
②parseFloat(字符串)->字符串变小数、浮点数
③Number(字符串)->数值型字符串变数值型【可小数、整数】
④利用算数运算 - * / 【隐式转换】
6.3转换成布尔型
①Boolean(变量)函数
- 代表空、否定的值都会被转换成false
- 如:‘ ’、0、NaN、null、undefined
- 其余都被转换为true
七、js运算符
运算符又称为操作符,用于实现复制,比较和执行算术运算功能的符号。
有:
- 算术运算符
- 递增和递减运算符
- 比较运算符
- 逻辑运算符
- 赋值运算符
1.算术运算符
概念:算术运算符用于执行两个变量或值的算术运算。
【代码规范:算术运算符两边需要➕空格】
①浮点数精度问题
❗:
避免使用浮点数直接进行算术运算,因其运算后会产生多余的小数。
不要直接判断浮点数是否相等
②判断数被整除
取余==0
③算术运算符优先级
先乘除,后加减,有小括号先算里面的。
④.表达式
由数字、运算符、变量等组成的式子,叫做表达式。
⑤.返回值
表达式运算的结果,成为返回值。
2.递增、递减运算符
①递增运算符
相当于num=num+1
- 前置:++ num(变量名),【先自加参与计算,后返回值】
- 后置:num(变量名)++ 【先返回值参与计算,后自加】
【后置更常用:num++】
②递减运算符
同上。
3.比较运算符
是两个数据进行比较时所使用的运算符,返回值是一个布尔值(true/false)作为比较运算结果。
❗:
-
== 是判断值是否相等,转型指:字符型和数值型转换
- === !== 表示的是全等,是数据类型和值都相同
①=小结
4.逻辑运算符
是用来进行布尔值运算的运算符,其返回值也是布尔值。
- java中叫做短路与哦,前面表达式,可得出结果,后面就不执行了。
4.1短路运算(逻辑中断)
当有多个表达式的值,左边的表达式值可以确定结果,就不再运算右边的表达式值。
①逻辑与
表达式1为真,返回表达式2的值
表达式1为假,返回表达式1的值
-
有空或否定的为假,其余为真
②逻辑或
表达式1为真,返回表达式1的值
表达式1为假,返回表达式2的值
5.赋值运算符
用来把数据赋值给变量的运算符
6.运算符优先级
- 一元运算符:只有一个变量参与运算 如:num++、!num
- 逻辑运算符优先级最低
八、三元表达式
三元表达式可以做一些简单的条件选择,由三元运算符组成。
(1)语法结构 条件表达式 ? 表达式1:表达式2
(2)执行思路
如果条件表达式为True,返回表达式1的值,反之,返回表达式2的值