目录
一.数据类型
1.js中的八种数据类型
Number数字、String字符串、Boolean布尔值、Null空值、undefined未定义、Object对象、bigint(精度整数)以及ES6之后新增的Symbol(象征)。
2.Number数字值
语法:
let a = 123;
let b = new Number('123'); // b === 123 is false,a是对象
let c = Number('123'); // c === 123 is true,b是数字
Number中有一个NaN非数字特殊类型,特殊注意NaN 不等于NaN,NaN和任何值做算数运算也会返回NaN。
3.String字符串
语法:
let a = "12a";
let b = new String(12a); // b === "12a" is false,a是对象
let c = Number(12a); // c === "12a" is true,b是字符串
4.Boolean布尔值
Boolean布尔值只有两种值,true和false
5.Null空值
Null与undefined的区别,都是空,类型却不同。一个定义了一个未定义
6.Undefined未定义
undefined 是一个没有设置值的变量,就是未定义的变量
7.Object对象
object,js中的对象,用于存储各种键值集合和更复杂的实体,Object中又包含Data日期、Function函数、Array数组三种引用类型
语法:
//创建对象
let a = new Object();
a.test = "test";
//创建对象
let a={test:"test",}
8.Bigint(精度整数)
Javascript 中可以用Number表示的最大数字,Bigint可以表示任意大的整数,通常用来支持Number无法表示的数字。
9.Symbol(象征)
Symbol,汉译象征,符号,标志,Symbol()具有静态属性和静态方法。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的 symbol 注册,每个从 返回的 symbol 值都是唯一的。一个symbol值能作为对象属性的标识符;这是该数据类型仅有的目的,不支持"new Symbol()"语法。
语法:
//创建新的symbol类型,并用一个可选的字符串作为其描述
var a = Symbol();
var b= Symbol('test');
var c= Symbol('test');
//上面的代码创建了三个新的symbol类型,不会隐式与显式将字符串“foo”转换成 symbol 类型,symbol每次都会创建一个新的symbol类型,确保唯一性
Symbol("test") === Symbol("test"); // false
二.类型转换
1.隐式转换
隐式类型转换,也称自动类型转换,是指不需要书写代码,由系统自动完成的类型转换。JS中发生隐式转换多在运算中
左式 | 运算符+ | 左式 | 结果 |
number | + | number | number |
number | + | string | string |
string | + | boolean | string |
string | == | number | true |
undefined | == | null | true |
2.显式转换
明确知道数据,手动去转换需要的数字类型
转换函数 | 作用 |
Number() | 将其它类型的数据转为数值型,遇到不能表示为number的值,都会转换成NaN,但注意null转换成0,undefined转换为NaN |
parseInt() | 解析字符串并返回整数,只返回字符串中的第一个number,没有或空返回NaN,以0开头的数字字符串省略0,返回其它数字字符串。 |
parseFloat() | 函数解析字符串并返回一个浮点数,解析为第一个有效小数点,0开头字符 如果继续解析后面字符非数字则返回0,是数字 省略0 返回有效数字 |
String() | 将其它类型的数据转为String型 |
toString(x) | 将其它类型的数据转为String型,语法let testToString=test.toSring(),x作为参数,可传入进制数,可将需要转换的number转换为x进制再转成数字字符串 |
Boolean() | 将其它类型的数据转为布尔值,对于number,1代表true,0就是false;对于String,空就是false,注意有空格不算空,非空就是true;对空数组为true;null,undefined,NaN都为false; |