This commit is contained in:
qianguyihao 2018-03-22 11:54:37 +08:00
parent 575b853d31
commit aae88046b6
38 changed files with 129 additions and 33 deletions

View File

@ -14,19 +14,15 @@
当函数调用call()和apply()时,函数都会立即**执行**。
- 都是用来改变函数的this对象的指向的
- 都可以用来改变函数的this对象的指向
- 第一个参数都是this要指向的对象函数执行时this将指向这个对象
- 都可以利用后续参数传实参。
- 第一个参数都是this要指向的对象函数执行时this将指向这个对象后续参数传实参。
**call()和apply()的区别:**
- call()方法可以将实参在对象之后依次传递。
- apply()方法需要将实参封装到一个**数组**中统一传递。
call()和apply()方法都可以将实参在对象之后依次传递但是apply()方法需要将实参封装到一个**数组**中统一传递。
比如针对下面这样的代码:

View File

@ -34,7 +34,7 @@
<script>
window.onload = function () {
var myDiv = document.getElementsByTagName('div');
for (i = 0; i < myDiv.length; i++) {
for (var i = 0; i < myDiv.length; i++) {
myDiv[i].onclick = function () {
console.log(i);
}
@ -58,11 +58,11 @@
```
上方代码的正确打印结果是5。你可能会觉得很惊讶。我们来解释一下
点击其中的任何一个元素后,上方代码的正确打印结果是5。你可能会觉得很惊讶。我们来解释一下
当代码执行完毕后i已经等于5了。因为一旦运行程序for循环已经执行完了此时i等于5。
如果我们尝试在 myDiv[i].onclick事件中写代码的时候,如果打印:
现在,我们尝试在 myDiv[i].onclick事件中写代码如果打印
```
console.log(i); //打印结果为5
@ -83,12 +83,14 @@
你看this的作用就体现出来了。
PS顺便提醒一下上面的代码中如果把`var i`改成`let i`,效果又完全不同了。参考链接:[let和var在for循环中的表现](http://blog.csdn.net/stopllL/article/details/64130664)
### 全局作用域中的this
当一段代码在浏览器中执行时所有的全局变量和对象都是在window对象上定义的。换而言之所有的全局变量和对象都属于window对象。
### this的定律
## this的定律
this关键字永远指向函数方法运行时的**所有者**。
@ -114,7 +116,7 @@ this都是指向window。
### 以方法的形式调用时this是调用方法的对象
### 解决闭包中的this指向问题
## 解决闭包中的this指向问题
内部函数是可以访问到外部函数的变量的。

74
19-基础/01-常见.md Normal file
View File

@ -0,0 +1,74 @@
## HTML
### 你是如何理解 HTML 语义化的?
**语义化**:指对文本内容的结构化(内容语义化),选择合乎语义的标签(代码语义化)。
**举例**:段落用 p边栏用 aside主要内容用 main 标签。
**好处:**
- 便于开发者阅读和维护
- 有利于SEO让浏览器的爬虫和辅助技术更好的解析
**语义化标签介绍**
在HTML5出来之前我们习惯于用div来表示页面的章节或者不同模块但是`div`本身是没有语义的。但是现在HTML5中加入了一些语义化标签来更清晰的表达文档结构。
20180322_1120.jpg
参考链接:
- [初探 · HTML5语义化](https://zhuanlan.zhihu.com/p/32570423)
### meta viewport 是做什么用的,怎么写?
```html
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
```
控制页面在移动端不要缩小显示。
### canvas 元素是干什么的?
看 MDN 的 [canvas 入门手册](https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API)。
## CSS
### 说一下盒模型
可以参考本人的另外一篇文章:[]()
## 参考链接
- [互联网公司招聘启事的正确阅读方式](https://zhuanlan.zhihu.com/p/33998813)

View File

@ -0,0 +1,5 @@
## this 在各个场景下的指向

22
19-基础/异步.md Normal file
View File

@ -0,0 +1,22 @@
## 面试题
### 20180321面试题
```javascript
console.log(1);
setTimeout(function () {
console.log(2);
}, 1000);
setTimeout(function () {
console.log(3);
}, 0);
console.log(4);
```

View File

@ -1,18 +0,0 @@
### 2018-01-29
长期写博客的人,最少能证明他是一个善于思考和总结的人。
这句话的来源:[我依然坚持建议你开始写博客 | 写给我的 2017](https://www.cnblogs.com/plokmju/p/8108846.html)
### 2018-03-21
- [不谈面试题,谈谈招聘时我喜欢见到的特质](https://www.cnblogs.com/dino623/p/8583514.html)

View File

@ -40,7 +40,7 @@
如果我们在控制台输入`myVue.data+='123'`,页面会**自动更新**name的值。
下面来讲一下Vue的系统指令
下面来讲一下Vue的各种系统指令
## v-on注册事件
@ -320,12 +320,12 @@ v-text可以将一个变量的值渲染到指定的元素中。例如
<script>
var vm = new Vue({
el: '#app',
//采用v-model进行双向数据绑定数据会自动更新到data里面来
//上面的标签中采用v-model进行双向数据绑定数据会自动更新到data里面来
data: {
name: 'smyhvae',
myAccount: {username: '', userpwd: ''}
},
//绑定方法,根据业务需要进行操作
//在methods里绑定各种方法,根据业务需要进行操作
methods: {
submit1: function () {
alert(this.myAccount.username + " pwd=" + this.myAccount.userpwd);

View File

@ -145,3 +145,18 @@
### 2018-01-29
长期写博客的人,最少能证明他是一个善于思考和总结的人。
这句话的来源:[我依然坚持建议你开始写博客 | 写给我的 2017](https://www.cnblogs.com/plokmju/p/8108846.html)
### 2018-03-21
- [不谈面试题,谈谈招聘时我喜欢见到的特质](https://www.cnblogs.com/dino623/p/8583514.html)