js中的数据类型有六种:
1.undefined-未定义类型:未被赋值的变量,值为undefined
let number;//此时number就是undefined类型
2.boolear"布尔类型:值为tue/false
let bo1 = true;
let bo2 = false;
//当变量被赋予true,false值时则为布尔类型
3.number-数字类型:任何数字(NaN也是number类型,表示“非数”)
let a = 3;
let b = 4;
let c = 5.5;
let d = a / b;//打印结果为0.75
注意:因为JavaScript中不存在类似C语言中的整型除法不存在整型和浮点型,因此在JavaScript中10/3=3.3333333
4.string-字符串类型:值用引号(单引号或者双引号)括起来
let str1 = 'hello world';
let str2 = "hello world";
5.object-对象类型:null、数组、Date等(date是js内置的对象)
console.log(new Date());//输出的内容为当前的国际标准时间
6.function-函数类型:function函数
//方法一:
function asy(){
}
//方法二
let asy = function (){
}
//函数的调用
asy();
相关运算
typeof运算符
typeof运算符可以用来获取目标变量的数据类型
let num;
console.log(typeof num);//返回undefinedv
num = 10;
console.log(typeof num);//返回number
num = 'abc';
console.log(typeof num);//返回string
num = true;
console.log(typeof num);//返回boolean
num = function (){}
console.log(typeof num);//返回function
num = []//数组v
console.log(typeof num);//返回object
num = null;
console.log(typeof num);//返回object
num = new.Date();
console.log(typeof num);//返回object
特殊值NaN
NaN:即非数值(Not a Number),是一个特殊的值
将一个其他的数据类型转化为数字时,若转化失败则会返回特殊值NaN
parseInt是一个内置函数,可以直接拿来用,功能:将内容为数字的字符串转化为整数
当字符串中第一个元素为字符或没有元素为数字时,返回NaN
当字符串中间元素为字符时,返回的值为从第一个元素的数字到第一个字符元素之前的数字
//parseInt是一个内置函数,可以直接拿来用,功能:将内容为数字的字符串转化为整数
let a = '123'
console.log(parseInt(a));//打印结果为123
a = 'abc'
console.log(parseInt(a));//打印结果为NaN
a = '123a'
console.log(parseInt(a));//打印结果为123
a = '1a23'
console.log(parseInt(a));//打印结果为1
a = 'a123'
console.log(parseInt(a));//打印结果为NaN
a = '20.2'
console.log(parseInt(a));//打印结果为20
NaN和任何数据进⾏运算结果仍然是NaN。
因此,想要判断⼀个变量是不是NaN时,不能使⽤这种形式:a==NaN,⽽要使⽤isNaN()函数:
isNaN()函数在接收到⼀个值之后,会尝试将这个值转换为数值,如果可以转就返回false:(被转换的对象只要中间有一个字母,则其无法转化为数字)
特殊值Infinity
Infinity即无穷,是⼀个特殊的值
console.log(10/0);//打印的结果为Infinity
出现这两种特殊值的原因是JS处理异常的能力很弱,因此JS有时在出现问题的时候有时不进行报错,而是传回一个特殊值
JS中的运算符
运算符 | 优先级 |
算数运算符 | ++ -- * / % + - |
比较运算符 | < <= > >= == != === !== |
逻辑运算符 | ! && || |
赋值运算符 | = += -= *= /= |
==与===
== 相等运算符:运行时: “==”操作符会⾃动将两端的操作数转换为同⼀种数据类型后再作⽐较。
=== 严格相等(等同运算符 ): “===”是严格意义上的相等,两个值和它们的类型完全⼀致时才返回true。
console.log(1=='1');//true
console.log(1==='1');//false
js中的数据类型转换
隐式转换:减、乘、除可自动进行隐式转换.(与C语言中的整型提升相似)
let num1 = '10';
let num2 = '5';
console.log(num1-num2) //5
console.log(num1*num2) //50
console.log(num1/num2) //2
强制转换:
parseInt()
:将字符串转换成整数。
parseFloat()
:将字符串转换成浮点数。