今天学习js基础,就又拿出高程看了一遍这几种数据类型。书尤其是技术类的书,看第二遍总是比第一遍收货的更多。以前看第一遍的时候到后面几乎是糊里糊涂的看完了,现在从新看了一遍才发现写代码时遇到的问题在这里都能找到一个合理的解释。
js数据类型有六种,五种基本数据类型,还有一个复杂数据类型(obj);
EMCAscript规定的变量是松散类型的,所谓松散类型就是可以用来保存任何类型的数据。换句话说:js中的每个变量仅仅是用来保存值的占位符而已。
1.使用var声明了变量,但是并未对变量进行赋值操作,那么这个变量就是undefined类型
var a;
console.log(a); //undefined
var a = undefined;
console.log(a); //undefined
说明没有赋值的变量默认值就是undefined
2.包含undefined值的变量与尚未定义的变量是不一样的;
var message;
alert(message); //undefined
//var age;
alert(age); //产生错误
3.对为赋值的与未声明的变量都进行typeof()操作,都会返回undefined
var message;
alert(typeof(message)); //undefined
//var age;
alert(typeof(message)); //undefined
1.逻辑上讲 null 表示一个空对象
typeof(null); //object
2.undefined 的值派生于null的值
alert(null == undefined)// true
(无论在任何情况下都没有必要把一个变量的值设置为undefined,但对于null 这句话不适用)
1.首先他有两个值 true 和 false (true 和 false 是区分大小写的)
2.转换为boolean型时用 Boolean();
转换规则为:
类型 | true | false |
---|---|---|
string | 任何非空字符 | 空字符 |
number | 任何非零数字值 | 0和NaN |
object | 任何对象 | null |
undefined | 不适用 | undefined |
1.有十进制 八进制 十六进制
八进制 以 0 开头 以 0-7 为内容
console.log(070) // 56
console.log(079) // 79
console.log(08) // 8
都会以十进制显示出来
2.浮点数值
保存浮点数所需要的内存是整数的两倍
js会将小数点后带有6个零的浮点数转换为以e开头的值
浮点数值的最高精度为17位小数
最大值 max_value 最小值为 min_value 无穷大 znfinity
在其他变成语言中任何值除以非数值都会导致错误,从而停止代码的执行,但在js中任何数除以非数值都会返回NaN;
isNan() 用来判断是否是非数值型
var a;
isNaN(a) // true
var b = 3;
isNaN(b) // false
数值转换
Number() parseInt() parseFloat()
parseInt() 转换时注意几点:
1.第一个字符为非数字或者非负号 输出 NaN
2.parseInt() 为空时 输出NaN
3.数字和字符混合的遇到字符就停止
4.为小数会转换为整数
例子:
console.log(parseInt("s5")); //NaN
console.log(parseInt(-5.2)); //-5
console.log(parseInt(5)); // -5
console.log(parseInt("1024Kb")); //1024
parseFloat ( ) 和 parseInt ( ) 相似。
1.字符字面量
例如: \n , \t , \b , \r , \ …… 仅站一个字符
var str = " I am a boy \r";
console.log(str.length); //13
2.字符串一旦创建并赋值就不能改变,要改变就得销毁然后再用一个新的去填充该变量。
例:
var lang = "java";
lang = lang + "script"; //javascript
销毁填充操作在后台
3.tostring()方法 转换为字符串形式
对数值转换可以转换为进制型
例:
var num = 10;
num.tostring(); //10
num.tostring(2); //1010
num.tostring(8); //12
num.tostring(16); //a