1、mouseover和mouseenter的區(qū)別
兩者都是鼠標移入元素時觸發(fā),區(qū)別在于mouseenter不支持冒泡行為,mouseover有冒泡行為
2、let和var的區(qū)別
let是塊級作用域,var是函數(shù)級作用域,let只在最近的大括號內(nèi)有效,var是在最近的函數(shù)大括號內(nèi)有效
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、函數(shù)返回值默認是undefined,參數(shù)遺漏默認為傳入undefined
函數(shù)內(nèi)部無明確返回值時,默認返回的是undefined
function say(){
return //沒有明確返回值則默認返回undefined
}
function info(param){
console.log(param)
}
info() //控制臺打印undefined
5、nvm切換node版本成功,node -v顯示的依然是之前的版本
從vue2.0切換到vue3.0的時候執(zhí)行yarn dev報錯Cannot find module 'worker_threads',原因是node版本過低,我是10.15.0,之后我使用nvm把node更新到15.6.0,然后發(fā)現(xiàn)node -v返回的還是10.15.0的版本,這個問題是因為我之前是先安裝的node,后安裝的nvm,這樣導致之前安裝的全局node版本不受nvm管理,解決辦法就是把之前安裝的node刪除掉。
執(zhí)行which node命令,查看之前的node安裝的位置,我的node安裝的位置是/usr/local/bin/node,找到該文件把該文件刪除掉,再使用nvm切換node,執(zhí)行node -v就顯示的切換后的node版本了
6、npx的作用
例如執(zhí)行npm webpack和npx webpack,前者是直接到全局找webpack執(zhí)行,后者是現(xiàn)在項目下的node_modules目錄下找webpack,如果沒找到再到全局去找
7、?.的作用
判斷一個變量是否為真,如果為真取變量的某個屬性值,如果為假則返回false
const username= someValue.user?someValue.user.name:undefined
const username = someValue.user?.name || undefined
//以上兩則實現(xiàn)的效果是相同的