省略var声明的变量是全局变量;
js的数据类型
Undefined、Null、Boolean、Number、String五种简单数据类型和Object一种复杂数据类型;
typeof语法
语法:typeof 变量 或者 typeof(变量);
功能:检测变量数据类型
返回值:string类型
Null
null表示一个空对象的指针;
undefined是派生自Null的;故undefined==Null;返回值为true;
Number
表示整数或者浮点数;
NaN:(Not a Number)表示非数值;任何涉及NaN的操作都会返回false,并且NaN也不等于自身;
isNaN()
语法:isNaN(n);
功能:检测n是否为非数值,是就返回true否则返回false;
返回值:boolean
参数:可以是任意类型
它在收到参数后会尝试将参数转换为数值;某些不是数值的值会直接转换为数值;
数值转换
有三个函数:Number()、parseInt()、parseFloat()。
Number()可以用于任意数据类型;parseInt()、parseFloat()只能用于字符串类型。
parseInt
parseInt:忽略字符串前面的空格直到找到第一个非空格字符。如果找到的字符不能转换位数值则返回NaN;它提供两个参数,第二个参数是转换时使用的基数(即几进制);
parseFloat
praseFloat:和parseInt一样,但是它除了第一个小数点有效外它和praseInt的第二个区别是它始终都会忽略前导的零,例如:parseInt('0xf')将‘0x’转换为相同大小的十进制数值,而parseFloat('0xf')只会输出0。
String
字符串可以用单引号或双引号表示;
toString()
语法:str.toString()
功能:将str转换为字符串
返回值:返回str的一个副本;
参数:str是要转换的内容,可以是数值、布尔值、字符串、对象;
String()
如果不知道str是什么类型时可以用string();语法和功能和toString一样;
类型转换
除了0以外的任何数字转换为Boolean类型都是true;
除了“”外的所有字符转化为布尔类型都为true;
null和undefined转换为boolean为false;
递增和递减
++a和a++的区别是:++a先返回递增后a的值,a++返回a的值再返回递增后的值;
--a和a--同理;
逻辑与和逻辑非
&&:有假则假;从左到右开始运算;
规则:如果有一个操作数不是布尔值的时候,逻辑与操作后就不一定返回值;它遵循:
- 如果第一个操作数隐式转换为布尔值为true时,则返回第二个操作数;
- 如果第一个操作数隐式转换为布尔值为false时,则返回第一个操作数;
- 如果有一个操作数为null,则返回null;
- 如果有一个操作数为NaN,则返回NaN;
- 如果有一个操作数是undefined,则返回undefined;
1、2是在两个操作数情况下;3、4、5是在前面操作数隐式转换为ture的情况下;
||:有真则真;从左到右开始运算;
规则:如果有一个操作数不是布尔值的时候,逻辑与操作后就不一定返回值;它遵循:
- 如果第一个操作数隐式转换为布尔值为true时,则返回第一个操作数;
- 如果第一个操作数隐式转换为布尔值为false时,则返回第二个操作数;
- 如果有一个操作数为null,则返回null;
- 如果有一个操作数为NaN,则返回NaN;
- 如果有一个操作数是undefined,则返回undefined;
规则是在两个操作数情况下;
Comments NOTHING