4 数据类型
JavaScript 中提供了两类数据类型:原始类型 和 引用类型。
使用 typeof 运算符可以获取数据类型
alert(typeof age); 以弹框的形式将 age 变量的数据类型输出
原始数据类型:
number:数字(整数、小数、NaN(Not a Number))
==注意:== NaN是一个特殊的number类型的值,后面用到再说
string:字符、字符串,单双引皆可
==注意:==在 js 中 双引号和单引号都表示字符串类型的数据
boolean:布尔。true,false
null:对象为空
alert(typeofobj);//结果是 object
为什么打印上面的 obj 变量的数据类型,结果是object;这个官方给出了解释,下面是从官方文档截的图
![](https://img-blog.csdnimg.cn/img_convert/459cbba13d42ff37ded313a9998ca83b.png)
undefined:当声明的变量未初始化时,该变量的默认值是 undefined
var a ;
alert(typeofa); //结果是 undefined
5 运算符
JavaScript 提供了如下的运算符。大部分和 Java语言 都是一样的,不同的是 JS 关系运算符中的 == 和 ===,一会我们只演示这两个的区别,其他运算符将不做演示
一元运算符:++,--
算术运算符:+,-,*,/,%
赋值运算符:=,+=,-=…
关系运算符:>,<,>=,<=,!=,\==,===…
逻辑运算符:&&,||,!
三元运算符:条件表达式 ? true_value : false_value
3.5.1 \==和===区别
概述:
==:
判断类型是否一样,如果不一样,则进行类型转换
再去比较其值
===:js 中的全等于
判断类型是否一样,如果不一样,直接返回false
再去比较其值
代码:
varage1=20;
varage2="20";
alert(age1==age2);// true
alert(age1===age2);// false
3.5.2 类型转换
上述讲解 == 运算符时,发现会进行类型转换,所以接下来我们来详细的讲解一下 JavaScript 中的类型转换。
其他类型转为number
string 转换为 number 类型:按照字符串的字面值,转为数字。如果字面值不是数字,则转为NaN
将 string 转换为 number 有两种方式:
使用 + 正号运算符:
varstr=+"20";
alert(str+1) //21
使用 parseInt() 函数(方法):
varstr="20";
alert(parseInt(str) +1);
==建议使用 parseInt() 函数进行转换。==
boolean 转换为 number 类型:true 转为1,false转为0
varflag=+false;
alert(flag); // 0
其他类型转为boolean
number 类型转换为 boolean 类型:0和NaN转为false,其他的数字转为true
string 类型转换为 boolean 类型:空字符串转为false,其他的字符串转为true
null类型转换为 boolean 类型是 false
undefined 转换为 boolean 类型是 false
代码如下:
// var flag = 3;
// var flag = "";
varflag=undefined;
if(flag){
alert("转为true");
}else {
alert("转为false");
}
使用场景:
在 Java 中使用字符串前,一般都会先判断字符串不是null,并且不是空字符才会做其他的一些操作,JavaScript也有类型的操作,代码如下:
var str="abc";
//健壮性判断
if(str!=null&&str.length>0){
alert("转为true");
}else {
alert("转为false");
}
但是由于 JavaScript 会自动进行类型转换,所以上述的判断可以进行简化,代码如下:
varstr="abc";
//健壮性判断
if(str){
alert("转为true");
}else {
alert("转为false");
}