JavaScript第一天(3)
1. var 可以为声明的变量自动匹配数据类型
2. JS中的六种数据类型
数据类型 | |
---|---|
String | 字符串 |
Number | 数值 |
Boolean | 布尔值 |
Null | 空值 |
Undefined | 未定义 |
Object | 对象 |
3.typeof 可检查数据类型
var a = 123;
console.log("输出a="+a);
console.log("a的数据类型为:"+typeof a);
注意:
typeof 检查 NULL 值时,返回类型为 object;
4.JS不可用于精细计算
var a = 0.1+0.2;
console.log("输出b="+a);
console.log("a的数据类型为:"+typeof a);
注意:
JS最大值 Number.MAX_VALUE;
JS最小正值 Number.MIN_VALUE;
5.强制类型转换
(1)调用方法 | (只有 toString() 方法) |
---|
var a = 123;
console.log("输出a="+a);
console.log("a的数据类型:"+typeof a);
var b = a.toString();
console.log("输出b="+b);
console.log("b强制转换后的数据类型:"+typeof b);
注意:
a.不会改变原变量,只将转换结果返回。
b.转换 Null 和 Undefined 没意义,转换报错。
(2)调用函数 | (String() 函数 / Number() 函数 ) |
---|
var a = 123;
console.log("输出a="+a);
console.log("a的数据类型:"+typeof a);
a = String(a);
console.log("输出强制转换后的a="+a);
console.log("a强制转换后的数据类型:"+typeof a);
注意:
可转换 Null 和 Undefined 转换不报错;
Number() 函数转换 Null 时,为数字 0 ;
Number() 函数转换 Undefined 时,为 NaN ;
Number()函数转换数字字符串 | 转换结果 |
---|---|
数字字符串 | 数字 |
空串 | 0 |
其他字符串 | NaN |
Number() 函数转换数字字符串为数字,空串转换为 0 ,其他字符串均为 NaN 。
Number()函数转换布尔值 | 转换结果 |
---|---|
true | 1 |
false | 0 |
Number() 函数转换布尔值时,true为数字 1 ; false 为数字 0 ;
6.专门转换字符串
parseInt() 字符串 ——> 整数;
paseFloat() 字符串 ——> 小数;
var a = "1223abc";
console.log("输出a="+a);
console.log("a的数据类型为:"+typeof a);
a = parseInt(a);
console.log("输出转换后的a="+a);
console.log("转换后a的数据类型为:"+typeof a);
注意:
如果对非String字符串转换时,会先转换为String,再操作。
补充:
16进制数字以 0x 开头赋值,输出结果仍是十进制;
8进制的数字以 0 开头;
2进制数字以 0b 开头,不是所有浏览器都支持;
0开头的字符串,浏览器在解析时可能误以为8进制数字,为了确保所有浏览器解析统一,
paseInt(a,10)意思为指定参数解析为10进制。
7.Boolean()
布尔转换对象 | ture | false |
---|---|---|
数字 | 其余的都是true | 0 和 NaN |
字符串 | 其余的都是true | 空串 |
Null | × | √ |
Undefined | × | √ |
Object | × | √ |
*数字转布尔时:除了 0 和 NaN 转为false外,其余的都是true ;
字符串转布尔时:除了空串转为false外,其余的都是true;
Null 和 Undefined 转布尔时为false;
对象转布尔时为true;*
注意:
1.JS严格区分大小写;
2.每条语句 ; 结尾;
3.只声明,未赋值的变量类型为 undefined;
Infinity 表示正无穷;
NaN 表示 Not a Number;