JS知识点积累

1、mouseover和mouseenter的区别

两者都是鼠标移入元素时触发,区别在于mouseenter不支持冒泡行为,mouseover有冒泡行为

2、let和var的区别

let是块级作用域,var是函数级作用域,let只在最近的大括号内有效,var是在最近的函数大括号内有效
let不可以重复声明,var可以且会覆盖之前的声明
var有变量提升,在声明变量前使用会返回undefined,let不存在变量提升,只能在声明之后使用

3、获取一个变量的类型

let param = 111
Object.prototype.toString.call(param) //"[object Number]"
let param = "aaa"
Object.prototype.toString.call(param) //"[object String]"
let param = true
Object.prototype.toString.call(param) //"[object Boolean]"
let param = null
Object.prototype.toString.call(param) //"[object Null]"
let param = undefined
Object.prototype.toString.call(param) //"[object Undefined]"
let param = []
Object.prototype.toString.call(param) //"[object Array]"
let param = {}
Object.prototype.toString.call(param) //"[object Object]"
let param = function(){}
Object.prototype.toString.call(param) //"[object Function]"

4、函数返回值默认是undefined,参数遗漏默认为传入undefined

函数内部无明确返回值时,默认返回的是undefined

function say(){
  return //没有明确返回值则默认返回undefined
}

function info(param){
  console.log(param)
}
info() //控制台打印undefined

5、nvm切换node版本成功,node -v显示的依然是之前的版本

从vue2.0切换到vue3.0的时候执行yarn dev报错Cannot find module 'worker_threads',原因是node版本过低,我是10.15.0,之后我使用nvm把node更新到15.6.0,然后发现node -v返回的还是10.15.0的版本,这个问题是因为我之前是先安装的node,后安装的nvm,这样导致之前安装的全局node版本不受nvm管理,解决办法就是把之前安装的node删除掉。
执行which node命令,查看之前的node安装的位置,我的node安装的位置是/usr/local/bin/node,找到该文件把该文件删除掉,再使用nvm切换node,执行node -v就显示的切换后的node版本了

6、npx的作用

例如执行npm webpacknpx webpack,前者是直接到全局找webpack执行,后者是现在项目下的node_modules目录下找webpack,如果没找到再到全局去找

7、?.的作用

判断一个变量是否为真,如果为真取变量的某个属性值,如果为假则返回false

const username= someValue.user?someValue.user.name:undefined
const username = someValue.user?.name || undefined
//以上两则实现的效果是相同的
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在学js的过程中,记录一些零碎的小知识,以便以后翻看。持续更新……学习资料:JavaScript教程 以及 《你不...
    许骁Charles阅读 3,142评论 0 1
  • ECMAScript和JavaScript的关系是,前者是后者的规格,后者是前者的一种实现初学者一开始学习Java...
    _双眸阅读 2,720评论 0 0
  • jquery介绍 jQuery是目前使用最广泛的javascript函数库 据统计,全世界排名前100万的网站,有...
    就是这么帅_567e阅读 4,994评论 0 0
  • javascript 是一门弱类型,动态脚本语言(所有变量通过var声明,不需要用int char....).它的...
    3hours阅读 4,021评论 0 1
  • 1,介绍js的基本数据类型。 Undefined、Null、Boolean、Number、String 2,介绍...
    hwj6820阅读 1,449评论 0 0