数据类型:number、string、boolean、null、undefined、object
1. number ==> string
+‘’ 、String(number) 、number.toString()
var a=12;
var b=13;
console.log(a+''+b,typeof(a+''+b)) /* 1213 string */
console.log(a.toString()+b,typeof(a.toString()+b)); /* 1213 string */
console.log(String(a)+11,typeof (String(a)+11)); /* 1211 string */
2. string ==> number
Number()、+string、-string、parseFloat(s) 保留全部
~~string、parseInt(s) 只保留整数
var s1='12.9';
console.log(parseInt(s1)+1); /* 13 */
console.log(parseFloat(s1)+1); /* 13.9 */
console.log(Number(s1)+1); /* 13.9 */
var s3='12.9';
console.log(+s3+1); /* 13.9 */
console.log(-s3+1); /* 11.9 */
console.log(~~s3); /* 12 */
Number() 和 parseFloat() 区别:
var s2='12.9abc';
console.log(parseFloat(s2)); /* 12.9 */
console.log(Number(s2)); /* NaN : not a number 非数字*/
ps:不过NaN为number的一种,即typeof NaN为number
注意NaN的特殊:
console.log(Number==Number); /* true */
console.log(null==null); /* true */
console.log(undefined==undefined); /* true */
console.log(NaN==NaN); /* false */
console.log(typeof NaN); /* number */
3. number、string ==> boolean
Boolean()、!!number/string
var a=0,b=1,s1='',s2='hello',s3=null,s4=undefined;
console.log(Boolean(a)); /* false */
console.log(Boolean(b)); /* true */
console.log(Boolean(s1)); /* false */
console.log(Boolean(s2)); /* true */
console.log(Boolean(s3)); /* false */
console.log(Boolean(s4)); /* false */
console.log(!!b); /* true */
console.log(!!s4); /* false */
4. boolean==> number
console.log(false+1); /* 1 */
console.log(true+1); /* 2 */
5. 注意
【有些想测试的还没测。。。感兴趣的可以测一下】
console.log(undefined); /* undefined */
console.log(null); /* null */
console.log(undefined==null); /* true */
console.log(undefined==false); /* false */
console.log(!!undefined==false); /* true */
console.log(NaN==NaN); /* false */
【解释为什么console.log(undefinednull); /* true */】(有的说undefinednull是因为null为object,而undefined为类型,是null一特殊存在,不过好像最初是这样用,现在摒弃了。。。但不确定这样说对不对。。。)
null 表示 “没有对象”,即该处不应该有值(典型用法:(1)作为函数的参数,表示该函数的参数不是对象;(2)作为对象原型链的终点。(这里不是很懂QAQ。。。))
undefined表示“缺少值“,即此处该有个值,但是没有定义(典型用法:(1)变量被声明了,但没有赋值时,就等于undefined;(2)调用函数时,应该提供的参数没有提供,该参数等于undefined;(3)对象没有赋值的属性,该属性的值为undefined;(4)函数没有返回值时,默认返回undefined)
声明:本站所有文章,如无特殊说明或标注,均为网络收集发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。