字符串 String
var a = '内容';
var a = "内容";
字符串特点:字符串一旦创建,它们的值不能改变,(要改变的话:先销毁原来的字符串,再使用新的字符串填充变量)
数字 Number
var a = 1;
var b = 124;
(1)数字有整数,浮点数;所谓的浮点数值,就是该数值中必须包含一个小数点,并且小数点后必须至少有一位数字由于保存浮点数值需要的内存空间是保存整数值的两倍,因此ECMAScript会不失时机地将浮点数值转换为整数值
- =》1
10.0 =》10
(2)范围从负无穷(-Infinity)到0 到正无穷(+Infinity);* Infinity是无法参与计算的;
- 判断值是否超过JavaScript数值范围可以使用:isFinite(num)
(3) NaN :即非数值(Not a Number)是一个特殊的数值;* NaN指的"不是一个数字",可以理解为"无效数值","失败数值", "坏数值";* 用于指出数字类型中错误的情况:执行数学运算没有成功,这是失败后返回的结果; - 任何涉及NaN的操作都会返回NaN;
- NaN与任何值都不相等;
- 判断是否"不是数值",参数为任意类型: isNaN();
布尔 Boolean
var a = true;
var a = false;
只有两个字面值: true 和false
在ECMAScript中所有的类型的值都有与这两个Boolean值等价的值
- null 空var a = null; 空对象指针准备给对象用的坑
null表示准备用来保存对象,还没有真正保存对象的值
typeof检测null时会返回 "object" :
最初在JavaScript最初实现中,JavaScript的值是由一个表示类型的标签和实际数值来表示的, 对象的类型标签是0,由于null代表的空指针,因此null的类型标签也成为了0,typeofnull就返回了object5. undefined 未定义;
var a = undefined;
var a;
准备给基本数据类型用的坑只有一个值,在使用var声明变量但还没有加以初始化赋值时,这个变量的值就是undefined类型的转换
(1) 转字符串: String(变量):
null与undefined可使用这个转型函数
var str = 'abc';
var num = 234;
var bool = true;
var un = undefined;
var nu = null;
console.log(String(num)); // '234'
console.log(String(bool)); // 'true'
console.log(String(un)); // 'undefined'
console.log(String(nu)); // 'null'
变量.toString(2 || 8 || 10 || 16) 参数是基数(几进制);
数值、布尔值、对象和字符串都有这个方法,null与undefined则没有数字转为字符串的特殊方法:数字.toFixed(位数) 保留小数点后几位,并采取四舍五入
(2)转数字:* Number() 布尔值: true - 1; false - 0;
var bool = true;
console.log(Number(bool)); //1
var bool = false;
console.log(Number(bool)); //0
Null: 0
var nu = null;
console.log(Number(nu)); //0
Undefined: NaN
var un = undefined;
console.log(Number(un)); //NaN
字符串:只包含数字(前面携带正负号)前导零会被忽略识别浮点、整数、16进制(自动转为同等大小的十进制数值)空字符串 - 0除上述之外 均为NaN
var c = Number('1前端'); // NaN;
var c = Number('1'); // 1;
var c = Number('前端1'); // NaN;
- parseInt() 转为整数忽略字符串前面的空格,直至找到第一个非空字符,如果第一个字符不是数字字符或者正负号返回 NaN如果第一个字符是数字字符,parseInt会继续解析第二个字符,知道解析完所有后续字符或者遇到了一个非数字字符字符串以'0x'开头且后跟数字字符,就会将其当作一个十六进制整数字符串以'0'开头且后跟数字字符,则会将其当作一个八进制数来解析空字符串 返回 NaN提供第二个参数:转换时使用的基数(进制)
var a = parseInt('123.9前端'); // 123;
var a = parseInt('前端123'); // NaN;
*parseFloat() 转为浮点数第一个小数点是有效的,第二个小数点是无效的只解析十进制,无第二个参数十六进制式的字符串始终被转换为 0
var b = parseFloat('1239前端'); // 1239;
var b = parseFloat('1.9前端'); // 1.9;
var b = parseFloat('前端1.9'); // NaN;
(3) 转布尔值:Boolean() 0,空字符串,NaN, undefined ,null 转布尔都为false基本类型之间的转换是一个重点,一定要记清楚:JavaScript是一种弱类型语言,其中的数据类型在不同情况下会发生隐性的转换,如果不清楚类型的转换,可能之后的代码报错都找不到原因。