You Dont Know JS (下) 笔记

  • 类型和文法
    javascript中有7个内建类型
object
string
number
undefined
boolean
null
symbol --在es6中被加入

可以使用typeof 得到变量的类型,它会返回7种类型中的一个,但是有一个bug,存在了20年之久。

typeof null === 'object'      //true
所以要想检测为null时,
(!a && typeof a === 'object' )

但是有一种情况不在之内

function test(){}
typeof test  // 'function'

这是因为function 类型也是object的子类型,请注意,这里的意思是,function,也是一个Object,这十分有用,Array也是一样,也是一个对象,也可以直接设置键值对。但是向function,Array上添加键值对不是一个好主意。

function test(){}
可以很粗暴的这样干,没问题,只是一般不会这样干
test.testObj = {name:'testname',age:123,address:'china'}
console.log(test.testObj)   //{name:'testname',age:123,address:'china'}

在js中变量是没有类型的,变量的值才有类型

你可能感兴趣的:(You Dont Know JS (下) 笔记)