一、数据类型转换
1.定义
javascript 是弱类型的
体现:对于变量存储的数据类型没有限制要求
也就是一个变量中可以存储任意的数据类型
计算机程序执行过程中 执行某些程序时 需要 指定的数据类型参与程序的执行
需要将 当前变量储存的数据类型 转化为指定的数据类型
2.数据类型的分类
(1)基本数据类型/简单数据类型
-
数值类型(number)
-
整数,一切数字都是数值类型(包括二进制,八进制,十进制,十六进制等)
默认存储方式是 按照 十进制数值存储:变量.toString( 进制 ) 进制范围是 2 - 36
二进制 数值前 添加 0b / 0B
八进制 数值前 添加 0o / 0O
十六进制 数值前 添加 0x / 0X
-
浮点数(小数) 有效数值 17位 (整数部分 加 小数部分 最多 17位)
误差/精度丢失
因为 在 计算机程序中 浮点数的存储方式 是 存储 近似值, 浮点数 直接参与 比较判断 或者 数学运算 误差一定存在
在 特殊情况下 会体现误差, 实际项目中 使用 浮点数 需要做特殊处理 科学计数法(数e数)数值1 乘以 10 的 数值2 次方
所有的科学计数法的数值都是浮点树类型
-
NaN
(not a number)表示 是 数值类型 但是 不是 某一个具体的数字, 一个非数字往往是 有非数字参与运算的结果 两个 NaN 比较判断 永远是 false有 NaN 参与的运算 执行结果是 NaN
-
-
字符串类型(string)
-
被引号包裹的所有内容(可以是单引号也可以是双引号)不能换行,不能解析变量,如果要解析变量 需要使用 字符串拼接语法‘串’+变量+‘串’;
`` 模板字符串 是 ES6 新增的语法形式 可以换行 可以解析变量 ${变量} `
-
-
布尔类型(boolean)
-
只有两个(
true
或者false
) -
往往是 比较判断的结果,可以作为数值直接赋值给变量,要小写 不要加引号
-
-
null类型(null)
-
只有一个,就是
null
,表示空的意思
-
-
undefined类型(undefined)
-
只有一个,就是
undefined
,表示没有值的意思
-
(2)复杂数据类型(引用数据类型)
-
对象类型(object)
-
函数类型(function)
-
数组
3.数据类型转化的方式
1.自动转化 计算机程序自动完成的数据类型转化
什么时候触发自动转化
转化的原则
(1).其他数据类型转化成数值 Number(变量)
- 转化为0的有 ‘’ ‘ ’ false null
- 转化为1 的 true
- 转化为对应的数字 ( 变量值为 符合数字语法规范的字符串) 对应的数值:符合数字规范的字符串
- NaN NaN undefined (变量值为 不符合数字语法规范的字符串.)
(2).其他数据类型转化成字符串类型
字符串拼接时,自动转化为字符串类型
转化原则:数据数值 转化对应的 字符串
(3).转化为布尔类型Boolean(变量/表达式);
什么时候触发自动转化? if语句 switch 三元运算
转化原则和自动转化布尔类型的原则完全相同
false(6种)
0 0.000 '' NaN null underfined
true
其他情况都转化为true
Boolean()不会改变变量中存储的原始数据
2.强制转化 程序员人为进行的数据类型转化
// 弱类型存储没有要求,可任意存储,,,强类型是固定的
(1)强制转化为布尔类型:Boolean( 变量 / 表达式 )
转化原则和自动转化完全相同 不会改变 变量中存储的原始数值
(2)强制转化为字符串类型:String( 变量 / 表达式 )
转化原则和自动转化完全相同 不会改变 变量中存储的原始数值
变量.toString( )
转化原则和自动转化完全相同,不会改变 变量中存储的原始数值
如果变量储存 null / undefined 不支持 变量.toString()
如果变量储存的是数值 可以定义 转化的进制 范围 2 - 36
(3)强制转化为数值类型: Number( 变量 / 表达式 )
转化原则和自动转化完全相同,不会改变 变量中存储的原始数值
1. parseInt( 变量 / 表达式 )
获取 整数部分 :从左起 获取符合整数语法规范的部分
如果 左起第一个字符不符合整数语法规范 结果是 NaN
2.NaN:true false null undefined 'a100'
3.获取整数部分
100 100
100.1213 100
'100a' 100
'2e3' 2
4. parseFloat( 变量 / 表达式 )
获取 浮点数部分
从左起 获取符合浮点数语法规范的部分
如果 左起第一个字符不符合浮点数语法规范 结果是 NaN
NaN: true false null undefined 'a100'
获取浮点数部分
100 100
100.123 100.123
'100a' 100
'2e3' 2000
小用法window.prompt() 输入框输入的数据 获取结果是 字符串类型如果需要参与计算 要 转化为 数值类型Number( window.prompt() ) window.prompt() - 0 window.prompt() * 1 window.prompt() / 1获取的css样式属性值 获取的css样式属性值 往往是带有 px单位可以 通过 parseInt( '100px' ) ---- 100获取整数部分 去掉 px单位
二、运算符
1.定义:
就是在代码里面进行运算的时候使用的符号,不光只是数学运算,我们在 js
里面还有很多的运算方式
2.种类:
(1)字符串拼接运算符: + 表达式 + 表达式
有一个表达式存储的数据是 字符串 执行字符串拼接操作
(2)算数运算符: + - * / %
% 求模运算符:求两个数相除的余数 如果整除 余数是 0
(3)比较运算符:> < >= <= == === != !==
比较运算符 执行结果 一定是 布尔类型
== 等于比较 / 宽松比较 两个表达式 数值相同 执行结果就是 true 数据类型可以不同 实际项目中不推荐使用
=== 全等判断 / 严格比较 两个表达式 数据类型 数值 都必须相同 执行结果才是 true 数据类型和数值 都必须相同
!= 不等判断 执行原理和 ==等于比较相同 执行结果 相反
!== 不全等判断 执行原理和 ===全等比较相同 执行结果 相反