Web/06-JavaScript进阶/JavaScript开发积累.md
2020-06-04 14:49:45 +08:00

133 lines
2.6 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

### 方法的注释
方法写完之后注意一定要先写完整我们在方法的前面输入`/**`然后回车会发现注释的格式会自动补齐
比如
```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-05-20-给数组对象赋值
**数组赋值的正确写法**
```javascript
this.todayList.splice(0, 0, ...dataList);
```
**对象赋值的正确写法**
```javascript
Object.assign(obj2, obj1);
```
上方代码中是将`obj1` 的值追加到`obj2`如果对象里的属性名相同会被覆盖
### 2019-11-25-在新的窗口中打开url
在原来的窗体中跳转到新页面
```javascript
window.location.href="要跳转的新页面";
```
在新窗体中打开新页面
```javascript
window.open('你所要跳转的新页面');
```
### 2019-12-10-JavaScript 新特性Optional Chaining可选链式调用语法
以往写代码我们一般都这么写
```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');
}
```
参考链接
- 了解 JavaScript 新特性Optional Chaining<https://www.infoq.cn/article/2JDORgXrU6VmZ7jlyuFD>
- 原文链接 https://v8.dev/features/optional-chaining
### 2020-04-28-判断字符串的包含关系
```js
var str = 'qiangu2';
if (str == ('qiangu1' || 'qiangu2')) {
console.log('qianguyihao');
}
```
注意上面的代码根本就不会走 console.log 语句因为if里面的内容是false
如果我们要判断变量 `str` 是否在 `qiangu1、qiangu2`的合集里我们应该这样写
```js
var str = 'qiangu2';
if (str == 'qiangu1' || str == 'qiangu2') {
console.log('qianguyihao');
}
```