JavaScript数据类型
看了一下JS语法,感觉语言之间都是相通的,有了编程基础感觉还是很好理解的。
JS的数据类型主要有几种: (其实大多数语言都差不多,只不过也有不同之处)。
1、数值;
2、字符串;
3、布尔值;
4、对象;
5、Undefined;
6、数组
1、数值
和其他语言不同的是,JS不区分整数和浮点数,一律按Number表示。
123; // 整数1230.456; // 浮点数0.4561.2345e3; // 科学计数法表示1.2345x1000,等同于1234.5
-99; // 负数NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表示为Infinity
NaN :
在其他语言中,任何数值除以非数值都会抛出错误,但JS会直接返回NaN。NaN的特点:
1、它与任何值都不相等,alert(NaN==NaN)也会返回False。
2、任何涉及NaN的操作都会返回NaN。
针对于NaN类型,有一个特殊函数,isNaN().,这个函数很特殊,它会设置将接收到的值转换为数值。如果转换不了,就直接返回True。
isNaN(10);false
isNaN('10'); false
isNaN(true);false
isNaN('hello') true
数值转换:
1、Number(),该函数的转换规则如下:
1)如果是null值,转为0;
2)如果是undefined会返回NaN;
3)如果字符串是纯数字,会转换为数字;但如果前面有0会省略。 var c = '011';//11
4)如果字符串中含有有效的十六进制格式,会转换为十进制;var c = '0xd'; //13
Number其实不怎么常用,主要用另外两种,parseInt和parseFloat,这两个函数专门用来将字符串转换为数值。
2、parseInt()
转换规则:
1)如果字符串是空,会返回NaN,这和Number不一样;var c = '' //NaN;
2)如果字符串第一个字符不是数字或者负号,就直接返回NaN,如果第一个是字符,那么久继续解析第二个字符,直到遇到非数字字符。这也和Number有很大区别。
var d = '024d';//24
3)八进制,16进制的转换和Number一致。
但要注意的是现在(ECMASCript 5 JS)不能直接转换了,要加上基数;
parseInt('070',8);//56,如果不加就转换为70了。
3、parseFloat() 该函数与parseInt相似,但该函数只解析十进制,十六进制的会转换为0。它也不同指定基数的事了。
2、字符串
字符串的最大特点是一经创建,值就不能改变,要改变某个变量存储的字符串,首先会销毁原来的字符串,然后再用另一个字符串填充变量。
var a= 'ssf'
var a= a +'fsf'
转换为字符串:几乎都用toString方法。布尔值,数值,字符串对象都有该方法,但undefined,null没有。
var e = true;
document.write(e.toString()) //"true"
还有一个转换函数String,它的规则是:
1、如果值有toString()方法就直接调用该方法;
2、如果是null,就返回‘null';
3、如果是undefined,就返回undefined
3、布尔值;
其实上面已经提到了,true,false
4、对象;
类似于Python中的字典,不过它的访问形式不仅可以像python一样访问,也可以直接用object.key访问。而且访问不存在的属性不报错,而是返回undefined:
var dic = {'dd':3,'dg':'dd'}
document.write(dic.dd)
5、Undefined;
如果定义一个变量,但是并没有赋值,会默认其值为undefind;
document.write(undefined==undefined) //true
6、数组
和其他语言的数据类型是一样的,不需要特别说明,只不过数组可以用Array声明。
new Array(1,2),不过最好还是直接使用[]。
微信分享/微信扫码阅读