数据类型: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)
热门文章
- 「3月2日」最高速度20.5M/S,2025年Clash/SSR/Shadowrocket/V2ray每天更新免费节点订阅链接
- 「2月16日」最高速度20.7M/S,2025年Shadowrocket/V2ray/Clash/SSR每天更新免费节点订阅链接
- 动物医院名字关键字是什么意思(动物医院的标志是什么)
- 沈阳宠物领养基地(沈阳宠物犬领养)
- 「12月16日」最高速度20.2M/S,2024年SSR/Clash/V2ray/Shadowrocket每天更新免费节点订阅链接
- 「12月24日」最高速度20.5M/S,2024年V2ray/SSR/Shadowrocket/Clash每天更新免费节点订阅链接
- 宠物店的猫哪里进货(宠物猫进货渠道)
- 「1月7日」最高速度19.4M/S,2025年Clash/Shadowrocket/V2ray/SSR每天更新免费节点订阅链接
- 宠物店领养协议书范本(宠物领养协议免费下载)
- 上海宠物中心领养地址在哪(上海宠物领养中心免费领养狗狗)