2-JavaScript-的包装类和基本检测 隐式转换

  • 1 +new Date() --隐式转换

JavaScript的隐式转换,在使用“ + - | ~~ ”的时候会先转换变量的类型再进行计算

s= new Date().toString();
//"Thu Aug 03 2017 09:44:12 GMT+0800 (中国标准时间)"

t= +new Date().toString();
//"1501724677368"

//s===t.getTime();
~~123.45
//123
~~-123.45
//-123

//相当于 "~~"==parseInt(argument,10)

//当然我们还可以用 “|”来取整

234.56 | 0
//234.56
-234.56 | 0
//-234

234.56 | undefined
//234.56
-234.56 | undefined
//-234

  • 2包装类

    • http://www.cnblogs.com/huangxincheng/p/4141883.html
var str = "string";
var strObj = new String("string");

alert(str)
//"string"
alert(strObj)
//String0: "s"1: "t"2: "r"3: "i"4: "n"5: "g"length: 6__proto__: String[[PrimitiveValue]]: //"string"

alert(str.length)
//6
alert(str.t = 10)
//10
alert(str.t)
//undefined
  • 3检测类型

typeof
instanceOf
duck type
object.protype.toString([])
  • 3 运算符

" , "运算符,运算最右边的值
三元运算符 a?b:c

"new"
function Foo(){};
Foo.protoptype.x = 1;
var obj = new Foo();
obj.hasOwnProperty('x');//false
obj._proto_hasOwnProperty('x');//true

你可能感兴趣的:(2-JavaScript-的包装类和基本检测 隐式转换)