JavaScript基础知识2

创建一个对象 三种方法

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

你可能感兴趣的:(JavaScript基础知识2)