发表于: 2019-08-18 22:53:18

1 872


今日完成的事

    过了一遍官方文档,看了任务要求,开始写任务

明日计划的事

    开始任务

收获

     看文档的时候,看到原生有个箭头函数,发现箭头函数表达式的语法比函数表达式更简洁,并且没有自己的this,arguments,super或 new.target。这些函数表达式更适用于那些本来需要匿名函数的地方,不能用作构造函数。并且箭头函数有两个方面的作用,写法更简短而且不绑定this。

这个函数可以改写成箭头函数


Person() 构造函数定义 this作为它自己的实例. growUp()函数定义 this作为全局对象, 他与在 Person()构造函数中定义的 this并不相同.


在这段代码中传递给setInterval的函数内的this与封闭函数中的this值相同:

每个新定义的函数都有自己的this值,不单单是js包括别的面向对象的语言也都是,箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。


看官网的时候发现truthy和falsy,本来以为和true和false一样,没想到官网特别强调了他们不一样。

javascript也支持boolean数据类型(有true和false两个值),不过特别的是,javascript中的任何对象都还隐含一个boolean值,这就是刚才说的truthy和falsy原则。

  • false
  • 0(零)
  • “”(空串)
  • null
  • undefined
  • NaN(Not-a-Number 

这几个都含有false的意思,除此之外其他值隐含的都是true属性,像“0”(字符串)、“false”(字符串),还有空函数、空数组、空对象这些比较容易搞混的,都是能返回true。

举个例子,这里a的值为false

b的值为true。

falsy的值之间的比较,false、0、空串三者是可以互等的

null和undefined可以互等,但是不与其他几种相等

NaN,不与其他任何值相等,甚至与自己都不等


空数组,例如var a = [];是返回true的,但也得看你怎么用,

也就是说,truthy和true还是不一样的,隐含有true属性的变量不可以认为它是true,它不是boolean类型!


返回列表 返回列表
评论

    分享到