Webcourse/05-JavaScript进阶/JavaScript开发积累.md

126 lines
2.4 KiB
JavaScript
Raw Normal View History

### 方法的注释
2018-02-01 22:58:37 +08:00
方法写完之后注意一定要先写完整我们在方法的前面输入`/**`然后回车会发现注释的格式会自动补齐
比如
```javascript
/**
* 功能给定元素查找他的第一个元素子节点并返回
* @param ele
* @returns {Element|*|Node}
*/
function getFirstNode(ele){
var node = ele.firstElementChild || ele.firstChild;
return node;
}
```
### 断点调试
1先让程序运行一遍
2f12弹出代码调试工具
3打断点
![](http://img.smyhvae.com/20180124_2035.png)
然后刷新页面
4一步步调试每点击一次执行一步
![](http://img.smyhvae.com/20180124_2036.png)
5监视变量
当然也可以添加变量或者表达式到监视窗口操作如下
![](http://img.smyhvae.com/20180124_2037.png)
上图中选择变量或表达式然后右键add to watch.
然后监视窗口
![](http://img.smyhvae.com/20180124_2038.png)
2019-11-23 11:16:39 +08:00
### 2019-05-20-给数组对象赋值
**数组赋值的正确写法**
```javascript
this.todayList.splice(0, 0, ...dataList);
```
**对象赋值的正确写法**
```javascript
2020-05-14 17:52:07 +08:00
Object.assign(obj2, obj1);
2019-11-23 11:16:39 +08:00
```
2020-05-14 17:52:07 +08:00
上方代码中是将`obj1` 的值追加到`obj2`如果对象里的属性名相同会被覆盖
2019-11-26 19:49:07 +08:00
### 2019-11-25-在新的窗口中打开url
2019-11-26 19:49:07 +08:00
在原来的窗体中跳转到新页面
2019-11-26 19:49:07 +08:00
```javascript
window.location.href="要跳转的新页面";
```
2019-11-26 19:49:07 +08:00
在新窗体中打开新页面
2019-11-26 19:49:07 +08:00
```javascript
window.open('你所要跳转的新页面');
```
2019-12-10 22:39:08 +08:00
### 2019-12-10-JavaScript 新特性Optional Chaining可选链式调用语法
2019-12-10 22:39:08 +08:00
以往写代码我们一般都这么写
2019-12-10 22:39:08 +08:00
```javascript
if (result && result.user && result.user.name && result.user.name.length) {
console.log('qianguyihao');
}
```
有了 Optinal Chain 语法之后就简洁很多了可以这么写
```javascript
if (result?.user?.name?.length) {
console.log('qianguyihao');
}
```
参考链接
2019-12-10 22:39:08 +08:00
- 了解 JavaScript 新特性Optional Chaining<https://www.infoq.cn/article/2JDORgXrU6VmZ7jlyuFD>
2019-12-10 22:39:08 +08:00
- 原文链接 https://v8.dev/features/optional-chaining
2020-05-03 08:54:37 +08:00
### 2020-04-28-字符串添加白名单
```js
if ('str1' == ('str1' || 'str2')){
console.log('smyhvae);
}
```
注意上面的代码根本就不会走 console.log语句因为if里面的内容是false