1.js函数参数
ES5写法
如果函数在调用时未提供隐式参数,参数会默认设置为: undefined
function myFunction(x, y) { y = y || 0; }
ES6写法
function myFunction(x, y = 10) { // y is 10 if not passed or undefined return x + y; } myFunction(0, 2) // 输出 2 myFunction(5); // 输出 15, y 参数的默认值
2. 热更新失效,控制台报错:sockjs-node/info?t= net::ERR_CONNECTION_TIMED_OUT
相关介绍:sockjs-node 是一个JavaScript库,提供跨浏览器JavaScript的API,创建了一个低延迟、全双工的浏览器和web服务器之间通信通道。
解决方法一:修改 vue.config.js 里的host
module.exports = { devServer:{ host: 'localhost' } }
解决方法二:(不推荐)
1. 找到/node_modules/sockjs-client/dist/sockjs.js
2. 在1603行,注释掉 self.xhr.send(payload); 这一行
参考:八猫儿人类编程 https://www.bilibili.com/read/cv17579958/
3. 递归Tip
在递归过程中,如果递归依赖上一次递归的结果,需要将结果return。
如果不需要上一次的结果,就不需要return。
4. vue项目启动
在项目的运行中,main.js作为项目的入口文件。运行中,找到其实例需要挂载的位置,即index.html中,刚开始,index.html的挂载点处的内容会被显示,但是随后就被实例中的组件的模板内容所取代,所以我们会看到有那么一瞬间会显示出index.html中正文的内容(开控制台看dom elements会更明显)。而index.html中的title部分不会被取代,所以会一直保留。
5. shims-vue.d.ts
shims-vue.d.ts是为了 typescript 做的适配定义文件,因为.vue 文件不是一个常规的文件类型,ts 是不能理解 vue 文件是干嘛的。加这个文件是是告诉 ts,vue 文件是这种类型的。
6. 操作符
- ?. 可能会存在,让后面那个变量就算没有也不报错
- !. 一定会存在,断言,我们确信这个字段100%出现
- !! 类型转换
- ??(空值合并运算符) 当左边的值为null或undefined的时候 就取??右边的值 。
以前,如果想为一个变量赋默认值,通常的做法是使用逻辑或运算符(||),然而,由于||是一个布尔逻辑运算符,左侧的操作数会被强制转换成布尔值用于求值。任何假值(0
, ''
, NaN
, null
, undefined
)都不会被返回。这导致如果使用0
,''
或NaN
作为有效值,就会出现不可预料的后果。
let count = 0; let text = ""; let qty = count || 42; let message = text || "hi!"; console.log(qty); // 42,而不是 0 console.log(message); // "hi!",而不是 "" let preservingFalsy =text ?? 'Hi neighborhood'; console.log(preservingFalsy); // '' (as text is neither undefined nor null)
空值合并运算符可以避免这种陷阱,其只在第一个操作数为null
或 undefined
时(而不是其它假值)返回第二个操作数
参考资料: MDN 表达式和运算符
标签:vue,undefined,js,运算符,函数参数,let,默认值 From: https://www.cnblogs.com/xinxinzh/p/16931596.html