1、1 == true的返回值是true,这句话是否正确?

在转换不同的数据类型时,==和!=遵循下列基本规则:


  • 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1.



2、在前提:var arr =[1,3,2]下,下面哪个操作会返回一个数组,并且不是arr?


[].concat.call(arr,[]) //(3) [1, 3, 2]  concat返回的是新的对象

arr.push(3) // 4 向数组的末尾添加一个或多个元素,并返回新的长度。

arr.reverse()      //(3) [2, 3, 1]   

[].sort.call(arr) //(3) [1, 2, 3]、

3、把鼠标移到按钮并点击时,会产生一串什么样的事件?

hover focus active  悬停 -> 聚焦 -> 响应

4、在文件/home/somebody/workspace/somemodule.js中第一行引用了一个模块:require(‘othermodule‘),请问required 的查找模块的顺序

A. /home/somebody/workspace/node_modules/othermodule/index.js

B. /home/somebody/workspace/node_modules/othermodule. Js

C.CORE MODULES named othermodule

D./home/somebody/node_modules/othermodule/index.js

(1):首先,Node在当前目录下查找package.json(CommonJS包规范定义的包描述文件),通过JSON.parse()解析出包描述对象,从中取出main属性指定的文件名进行定位。如果文件缺少扩展名,将会进入扩展名分析的步骤。   (2):而如果main属性制定的文件名错误,或者压根没有package.json文件,Node会将index当做默认文件名,然后依次查找index.js、index.node、index.json.   (3):如果在目录分析的过程中没有定位成功任何文件,则自定义模块进入下一个模块路径进行查找。如果模块路径数组都被遍历完毕,依然没有查找到目标文件,则会抛出查找失败异常。   按照上面的思路,首先应该查找package.json文件,看看里面有没有核心模块,应该是C最先,othermodule不是核心模块,那么接着应该进入扩展名分析的步骤,就应该是查找othermodule. js,对应B,紧接着就是以index为默认文件名,也就是A,再接下来就是上一个文件目录D了,

所以答案是: C B A D

5、 '+new Array(017)' 输出?( )

首先,前面+是一元运算符,相当于我们说的正负,无运算效果,但是可以将字符串等转为number类型。  

 此题中017其实是八进制,故而是是Array(15)。  

这里相当于对于一个未赋值但是长度为15的数组进行number类型转化,其结果为NaN