cosyer's Blog

Blog


  • 首页

  • 友链

  • 留言板

  • 归档

  • 关于

  • 搜索

JS 分类

7月
21
更新于
7月21
2020
JS

JavaScript停止冒泡和阻止浏览器默认行为

发表于 2018-06-18 | 热度 ℃
| 字数统计: 429 (字) | 阅读时长: 2 (分钟)

防止冒泡

w3c的方法是e.stopPropagation(),IE则是使用e.cancelBubble = true

stopPropagation也是事件对象(Event)的一个方法,作用是阻止目标元素的冒泡事件,但是会不阻止默认行为。什么是冒泡事件?如在一个按钮是绑定一个”click”事件,那么”click”事件会依次在它的父级元素中被触发 。stopPropagation就是阻止目标元素的事件冒泡到父级元素。


阅读全文 »
12月
15
更新于
12月15
2018
JS

JS执行顺序-函数声明提升、匿名函数、函数表达式

发表于 2018-06-13 | 热度 ℃
| 字数统计: 649 (字) | 阅读时长: 3 (分钟)

JS 是按照代码块进行 编译、执行 的。


阅读全文 »
7月
21
更新于
7月21
2020
JS

JavaScript深入之执行上下文

发表于 2018-06-13 | 热度 ℃
| 字数统计: 2,256 (字) | 阅读时长: 9 (分钟)

执行上下文(EC)就是当前JavaScript代码被解析和执行是所在环境的抽象概念,JavaScript中运行任何的代码都是在执行上下文中运行。

变量/函数提升(函数及变量的声明都将被提升到函数的最顶部,且函数声明在变量声明上边)

1
2
3
4
5
if(!("a" in window)){ // false
var a=1;
}
console.log(a) // undefined
// if(o.x){} // 不能判断属性存不存在 假值undefine,null,false," ",0或NaN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
function foo() {
console.log('foo1');
}

foo(); // foo2

function foo() {
console.log('foo2');
}

foo(); // foo2
---
var getName = function () { alert (4);};
function getName() { alert (5);}
getName(); // 4
---
function getName() { alert (5);}
var getName = function () { alert (4);};
function getName() { alert (6);}
getName(); // 4

函数表达式执行的优先级==!主要原因是函数声明都被提前了,所以函数表达式在最后会覆盖。

JavaScript 引擎并非一行一行地分析和执行程序,而是一段一段地分析执行。插槽slot 可执行代码的类型:全局代码、函数代码、eval代码。 JavaScript 引擎创建了执行上下文栈(Execution context stack,ECS)来管理执行上下文


阅读全文 »
7月
05
更新于
7月05
2020
JS

JavaScript深入之作用域

发表于 2018-06-12 | 热度 ℃
| 字数统计: 680 (字) | 阅读时长: 3 (分钟)

作用域

作用域是我们可以有效访问变量或函数的区域,包含全局作用域、函数作用域、块级作用域(ES6) 三种;

JavaScript 采用词法作用域(lexical scoping),也就是静态作用域。它的作用域是指在词法分析阶段就确定了,不会改变。而与词法作用域相对的是动态作用域,

函数的作用域是在函数调用的时候才决定的。

函数的作用域在函数定义的时候就决定了,函数的作用域基于函数创建的位置。


阅读全文 »
8月
27
更新于
8月27
2020
JS

JavaScript深入之从原型到原型链

发表于 2018-06-12 | 热度 ℃
| 字数统计: 2,765 (字) | 阅读时长: 11 (分钟)

原型对象的用途是为每个实例对象存储共享的方法和属性,它仅仅是一个普通对象而已,仅有一份。

每个对象都会在其内部初始化一个属性,就是prototype(原型),当我们访问一个对象的属性时, 如果这个对象内部不存在这个属性,那么它就会去prototype里找这个属性,这个prototype又会有自己的prototype,于是就这样一直找下去,也就是我们平时所说的原型链的概念

  • “prototype” 是什么? prototype 是所有公共方法和属性的宿主,从祖先派生的“子”对象可以从使用祖先的方法和属性。

原型是一个用于实现对象属性继承的对象。

构造函数创建对象

我们先使用构造函数创建一个对象:

1
2
3
4
function Person() {}
var person = new Person();
person.name = "cosyer";
console.log(person.name); // cosyer

在这个例子中,Person 就是一个构造函数,我们使用 new 创建了一个实例对象 person。


阅读全文 »
6月
23
更新于
6月23
2020
JS

React 16新特性context api

发表于 2018-06-11 | 热度 ℃
| 字数统计: 220 (字) | 阅读时长: 1 (分钟)

React 16.3带来了正式版的context API。让我们来看看有哪些改变,在那些地方可以取代redux吧!


阅读全文 »
7月
17
更新于
7月17
2020
JS

如何理解JS闭包

发表于 2018-06-11 | 热度 ℃
| 字数统计: 780 (字) | 阅读时长: 3 (分钟)

JavaScript中的函数运行在它们被定义的作用域里,而不是它们被执行的作用域里。

在JS中函数作为普通对象进行传递


阅读全文 »
8月
24
更新于
8月24
2020
JS

使用 Async/Await 让你的代码更简洁

发表于 2018-06-11 | 热度 ℃
| 字数统计: 1,086 (字) | 阅读时长: 5 (分钟)

Async/Await是一种允许我们像构建没有回调函数的普通函数一样构建Promise的新语法。以往的异步方法无外乎回调函数和Promise。但是Async/Await建立于Promise之上。


阅读全文 »
7月
30
更新于
7月30
2020
JS

从 for 循环入手优化性能

发表于 2018-06-08 | 热度 ℃
| 字数统计: 806 (字) | 阅读时长: 3 (分钟)

今天要说的是最简单的 for 循环,一个简单的 for 循环看似没有任何优化的意义,但实质上优化前后差距挺大的,那么该如何优化呢?


阅读全文 »
1月
20
更新于
1月20
2019
JS

es6函数新特性

发表于 2018-06-08 | 热度 ℃
| 字数统计: 1,544 (字) | 阅读时长: 7 (分钟)
  1. 设置函数默认值
  2. 结合解构赋值默认值使用
  3. 利用rest(…变量名)传入任意参数

阅读全文 »
1…567
陈宇(cosyer)

陈宇(cosyer)

不去做的话永远也做不到。

159 日志
10 分类
51 标签
RSS
GitHub Twitter E-Mail FB Page
推荐阅读
  • Callmesoul
  • JsTips
  • Personal Site
  • Resume
© 2021 陈宇(cosyer)
终于等到你(UV):   |   欢迎再来(PV):
Blog总字数: 312.5k字
苏ICP备17005342号-1