创建一个对象 三种方法
var o1 = {};
var o2 = new Object ();
var o3 = Object.create(Object.prototype);
检查变量a是否声明过
if('a' in window){……}
字符串要打''
一个对象有哪些API
Object.keys
任意类型转字符串
Number String Boolean Symbol Null Undefined Object
toSting 本来就是 toString 无 报错 报错 toString'[obj Obj]'
''+ 1 true + ''
window.String(1) window.String(true)
var n = null
n.toString()
//Uncaught TypeError: Cannot read property/*属性*/ 'toString' of null
/*不能读null的toString属性 因为null没有toString这个API 所以报错*/
var n = undefined /*同理*/
var object = {name:'frank'}
object.toString()
//"[object Object]"
/*对象有toString属性 但得到的不是想要的东西*/
console.log(1)
//1
/*等同于*/console.log((1).toSting())/*1要加括号*/
//1
/*console.log 发现你不是字符串 会调用toString把它自动转变成字符串*/
var object = {}
obj[1] = 2
obj[true] = 1
obj
//{1: 2, true: 1}
老司机万能法
1 + '' true + '' ''+ 1 ''+ true ''+ obj ''+null ''+undefined
"1" "ture" "1" "true" "[object Object]" "null" "undefined"
eg
1 + '1' /*等同于*/ (1).toString() + '1'
//"11"
window.String()
使用全局函数String 把不是字符串的东西变为字符串 (在window里找到它)
任意类型转布尔值
Number String Boolean Symbol Null Undefined Object(包括array function)
Boolean()
!!0 取反再取反
5个falsy值 0 NaN '' null undefined
/*其他值变布尔值时只有五个值false*/
任意类型转数字
一Number('1') === 1
二parseInt('1',10/*十进制,一定要写*/) === 1
三parseFloat('1.23') === 1.23/*小数*/
四'1' - 0 === 1/*减零*/
五+ '-1' /*加号无意义 也可以是减号 表示以数字的形式取*/
eg
- '-1' === -1 -(- '-1') === -1
ex
parseInt('011') //11
parseInt('011',8) //9
parseInt('011',10) //11
parseInt('s') //NaN
parseInt('12s') //12
网友评论