Day-19数据类型
数据类型指的就是字面量的类型
-
在JS中一共有六种数据类型
-
String 字符串
-
Number 数值
-
Boolean 布尔值
-
Null 空值
-
Undefined 未定义
-
Object 对象
-
-
其中String Number Boolean Null Undefined属于基本数据类型
-
而Object属于引用数据类型
String字符串
-
在JS中字符串需要用引号引起来
-
使用双引号或单引号都可以但是不要混着用
-
引号不能嵌套,双引号不能放双引号
-
在字符串中我们可以使用\作为转义字符,当表示一些特殊符号时可以使用\进行转义
-
\n 表示换行 \t 表示制表符
Number类型
-
在
JS
中所有的数值都是Number类型 -
所有加了引号的都是字符串
-
包括整数和浮点数(小数)
-
JS
中表示数字的最大值 -
Number.MAX_VALUE
-
如果使用Number表示的数字超过了最大值 则会返回
-
Infinity //表示正无穷 -Infinity 表示负无穷
-
NaN
是一个特殊的数字也是Number类型 -
可以使用一个运算符
typeof
来检查一个变量的类型 -
语法:
typeof
变量 -
检查字符串时,会返回string 检查数值时,会返回number
-
console.log(typeof a)
-
在
Js
中整数的运算基本可以保证准确但是如果使用js
进行浮点元素,可能得到一个不精确的结果,所以千万不要使用
JS
进行对精确度要求比较高的算术Boolean布尔值
-
布尔值只有两个
-
true===表示真 false=====表示假
-
将其他数据转boolean
-
数字-->转布尔 : 除了0和NaN 其余的都是true
-
字符串--->布尔 : 除了空串,其余的都是true
-
null和undefined都会转换为false
-
对象也会转换为true
-
使用
typeof
检查一个布尔值时,会返回Boolean
Null类型的值只有一个,就是Null
使用Typeof检查一个null值,会返回object
Undefined(未定)类型的值只有一个,就是undefined
当声明一个变量,但是并不给变量赋值时,他的值就是undefined
使用typeof检查时也还是返回undefined
强制类型转换
-
指将以个数据类型强制转换为其他的数据类型
-
类型转换主要指,将其他的数据类型,转换为
-
String Number Bpplean
将其他的数据类型转换为String
方式一:var a=123
a=toString(a)
方式二:var a =123
a=String(a)
-
方式一:
-
调用被转换数据类型的toString()方法
-
该方法不会影响原变量,它会将转换的结果返回
-
但是注意:null和undefined这两个值没有toString()方法
-
如果调用他们的方法会报错
-
-
方式二:
-
调用String()函数,并将被转换的数据作为参数传递给函数
-
使用String()函数做强制类型转换时
-
对于Number和Boolean实际上就是调用的toString()方法
-
但是对于Null和undefined,就不会调用toString()发放
-
他会将null直接转换为"null" 将undefined直接转换为"undefined"
-
强制类型转换
-
转换方式一:
-
使用Number()函数
-
-字符串-->数字
-
1.如果是纯数字的字符串,则直接将其转换为数字
-
2.如果字符中有非数字的内容,则转为NaN
-
3.如果字符串是一个空串或者是一个全是空格的字符
-
-
-布尔-->数字
-
true转成1
-
false转成0
-
-
-Null-->数字 0
-
underfined-->数字NaN;
-
-
-
转换方式二:
-
这种方式用来对付字符串
-
parseInt()把一个字符串转换成一个整数
-
parseFloat()把一个字符串转换为一个浮点数
-
-
调用parseInt()函数将a转换为Number
-
并且可以将一个字符串中的有效的整数内容取出来 然后转换为 Number
-
parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数
-
如果对非String使用parseInt()或Float 他会先将其转换为String然后在操作
var a = "123"
a=Number(a)
a=true
a=number(a)
运算符
-
运算符也叫操作符
-
通过运算符可以对一个或多个值进行运算,并获取运算结果
-
比如:typeof就是运算符,可以来获得一个值的类型
-
他会将该值的类型以字符串的形式返回
-
number string boolean undefined object
-
算术运算符
当对非Number类型的值进行运算时,会将这些值转换为Number然后在运算
任何值和NaN做运算都得NaN
-
+加法
-
可以对两个值进行加法运算,并将结果返回
-
如果对两个字符串进行加法运算,则会做拼串
-
会将两个字符串拼接为一个字符串,并返回
-
-
任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作
-
我们只需要为任意的数据类型+一个 即可将其转为string类型
-
这是一种隐式的转换,由浏览器自动完成,实际上他也是调用了String
-
-
-减法除了加法做拼接其余正常运算
-
可以对两个值进行减法运算,并将结果返回
-
-
*乘法
-
可以对两个值进行乘法预算,并将结果返回
-
-
/除法...
任何值做* - /运算时都会自动转换为Number 我们可以利用这一特点做隐士的类型转换
可以通过为一个值-0 *1 /1来将其转换为Number 原理和Number()函数一样,使用更简单
一元运算符
-
加号+ 为正号
-
正号不会对数字产生任何影响
-
-
负号 -
-
负号可以对数字进行负号的取反
-
对于非Number类型的值会将其先转换为Number,然后在运算
-
可以对一个其他的数组类型使用+ 将其转换为Number
-
跟- * /原理一样但是更简单
-
-
自增++
-
通过自增可以使变量在自身的基础上增加1
-
对于一个变量自增后,原变量的值会立即自增1
-
自增分成两种:后++(a++)和前++(++a)
-
无论是a++还是++a,都会立即使原变量的值自增1
-
不同的是a++和++a的值不同
-
a++等于原值 ++a等于新值
-
-
自减-- 同上
1.数据类型 - JS中一共分成六种数据类型 - String 字符串 - Number 数值 - Boolean 布尔值 - Null 空值 - Undefined 未定义 - Object 对象 - 其中基本数据类型有 - String 字符串 - JS中的字符串需要使用引号引起来双引号或单引号都行 - 在字符串中使用\作为转义字符 ' ==> ' " ==> " \n ==> 换行 \t ==> 制表符 \ ==> \
- 使用typeof运算符检查字符串时,会返回"string"
- Number 数值
- JS中所有的整数和浮点数都是Number类型
- 特殊的数字
Infinity 正无穷
-Infinity 负无穷
NaN 非法数字(Not A Number)
- 其他进制的数字的表示:
0b 开头表示二进制,但是不是所有的浏览器都支持
0 开头表示八进制
0x 开头表示十六进制
- 使用typeof检查一个Number类型的数据时,会返回"number"
(包括NaN 和 Infinity)
- Boolean 布尔值
- 布尔值主要用来进行逻辑判断,布尔值只有两个
- true 逻辑的真
- false 逻辑的假
- 使用typeof检查一个布尔值时,会返回"boolean"
- Null 空值
- 空值专门用来表示为空的对象,Null类型的值只有一个
- null
- 使用typeof检查一个Null类型的值时会返回"object"
- Undefined 未定义
- 如果声明一个变量但是没有为变量赋值此时变量的值就是undefined
- 该类型的值只有一个 undefined
- 使用typeof检查一个Undefined类型的值时,会返回"undefined"
- 引用数据类型
- Object 对象
- 类型转换
- 类型转换就是指将其他的数据类型,转换为String Number 或 Boolean
- 转换为String
- 方式一(强制类型转换):
- 调用被转换数据的toString()方法
- 例子:
var a = 123;
a = a.toString();
- 注意:这个方法不适用于null和undefined
由于这两个类型的数据中没有方法,所以调用toString()时会报错
- 方式二(强制类型转换):
- 调用String()函数
- 例子:
var a = 123;
a = String(a);
- 原理:对于Number Boolean String都会调用他们的toString()方法来将其转换为字符串,
对于null值,直接转换为字符串"null"。对于undefined直接转换为字符串"undefined"
- 方式三(隐式的类型转换): *****
- 为任意的数据类型 +""
- 例子:
var a = true;
a = a + "";
- 原理:和String()函数一样
- 转换为Number
- 方式一(强制类型转换):
- 调用Number()函数
- 例子:
var s = "123";
s = Number(s);
- 转换的情况:
1.字符串 --> 数字