1、变量的声明与赋值
1)变量声明
var 变量名;
2)变量赋值
var 变量名 = 值;
var 变量名1,变量名2, 变量名3 = 值1,值2,值3;//声明多个变量
说明:省略var声明的变量是全局变量
2、数据类型
typeof操作符
用于检测变量类型。返回值为string类型。
typeof 变量;//或typeof(变量)
1)undefined
声明一个变量,若不赋值则该变量类型是undefined
2)null
null表示一个空对象指针。如果定义的变量用于保存对象,则应将该变量初始化为null
说明:undefined派生自null,故undefined==null为true
3)number
表示整数和浮点数
- NaN
非数字值,如:
typeof(123 - "abc");//返回NaN
- isNaN(n)
检测n是否是非数值。先对n尝试转换为数值,在检测是否为非数值。 - 数值转换
有三个函数可以把非数值转换为数值:
Number()
能把字符串类型的数字转换为数字,但不能转换字符串,如:
Number("16")//返回16
NUmber("abc")//返回NaN
parseInt()
转换的内容要以数字开头,如:
parseInt("16px")//返回16,自动忽略px
该函数提供第二个参数,转换的进制,如:
parseInt("0xf",16)//返回15
parseFloat()
转换成浮点数,与parseInt类似。自动忽略前导零。
3)string
- toString()与String()
toString() 将数值、布尔值、对象转换为字符串。在不知道要转换的值是不是null或undefined的时候用String()函数,如:
str.toString();
String(str);
4)boolean
- Boolean()转换成布尔型
除0之外的所有数字,转换为布尔型都为true;
除" "之外的所有字符,转换为布尔型都为true;
null和undefined转换为布尔型为false
3、算数操作符
- 隐式类型转换
var num1=10,
num2="5";
console.log(num1-num2);//返回5
4、比较操作符
==:相等,只比较值是否相等;
===:相等,比较值的同时比较数据类型是否相等;
!=:不相等;
!==:不相等,比较值的同时比较数据类型是否不相等;
var x=10,
y="10";
console.log(x==y);//true
console.log(x===y);//false
5、逻辑操作符
- &&:与
一般情况下操作布尔值。
在有一个操作数不是布尔值的情况,与操作就不一定返回值,此时它遵循下列规则:
1、如果第一个操作数隐式类型转换后为true,则返回第二个操作数;
console.log("abc" && 30);//返回30
2、如果第一个操作数隐式类型转换后为false,则返回第一个操作数;
console.log(0 && 30);//返回0
3、如果有一个操作数是null/NaN/undefined,则返回null/NaN/undefined。
- ||:或
在有一个操作数不是布尔值的情况,或操作就不一定返回值,此时它遵循下列规则:
1、如果第一个操作数类型转换后为true,则返回第一个操作数;
console.log("hello" || 0);//hello
2、如果第一个操作数类型转换后为false,则返回第二个操作数,并依次往后判断;
console.log(0 || "" || null);//null
3、如果两个操作数都是null/NaN/undefined,则返回null/NaN/undefined。
- !:非
无论操作数是什么类型,逻辑非都返回一个布尔值。
!!同时使用两个逻辑非操作符时:
第一个非操作会基于无论什么操作数返回一个布尔值;
第二个非则会对该布尔值求反。