一天一个小问题

  1. 为什么数组、空字符串可以转为0,而空对象不可以?
var str = ''
var arr = []
var obj = {}

console.log(str == 0) // true
console.log(arr == 0) // true
console.log(obj == 0) // false
  1. 这段代码为什么不会报错捏。
var x = 2
var b = () => {a: 1}
console.log(b()) // undefined

阮一峰在他的es6 函数扩展那一章说:

原始意图是返回一个对象{ a: 1 },但是由于引擎认为大括号是代码块,所以执行了一行语句a: 1。这时,a可以被解释为语句的标签,因此实际执行的语句是1;,然后函数就结束了,没有返回值

所以冒号:是被人抛弃了吗?

  1. 查东东的时候,莫名其妙看到这个问题:如果让 (aᅠ== 1 && a == 2 &&ᅠa == 3) 返回true
  1. 先挖个坑,晚点填
// 1.js
function test (x, y) {
  let x
}
test()

// 2.js
function test (x, y) {
  var x
}
test()

// 3.js
function test (x = 2, y = 2) {
  var y
  console.log(y); // 2
}
test()
  • 然后再看这里
var x = 1
function test (x, y = function () {console.log(x = 2)}) {
  var x = 3
  y()
  console.log(x)
}
test()
console.log(x)
  1. class 里面的 this 指代什么,是当前的对象实例吗?好像指的就是这个类,不是实例对象 u.u

  2. 360浏览器说...可以通过<meta>标签来设置默认的内核...然并卵...不知道啥原因.....

  1. 浏览器能支持的标签呀、api呀什么的,跟浏览器的内核有关还是与浏览器的版本有关呢?

  2. es6 class 关于 this 的指向问题

  1. Node.js 中 fs.readFile / writeFile 和 fs.createReadStream/writeStream 的区别

  2. ES6 中 子类继承父类的问题

class A {}
class B extends A {}

B.__proto__ === A // true

为什么是 proto 属性指向 A 呢
B 相当于一个构造函数,那么 B 的 prototype 指向的是什么?B.prototype ?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,196评论 0 13
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,905评论 0 38
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,141评论 1 32
  • 就这样吧,他这样对你,有什么值得留恋的,死心吧
    阿飞飞阅读 250评论 0 0
  • 窗外大雨的声音,一直持续。杭城又进入了肆虐的雨季。此刻安静地躺在这里,时间也跨入了另一天。朋友圈满满当当的老干部与...
    iLiner阅读 312评论 2 0