【前端】Web前端学习笔记【2】

时间:2022-01-05 10:36:16
  • 【2016.02.22至今】的学习笔记。

相关博客:


1. this在 JavaScript 中主要有以下五种使用场景


  • 在全局函数调用中,this 绑定全局对象,浏览器环境全局对象为 window
  • 作为对象方法使用,this 绑定到该对象。
  • 在对象a的方法b内部的函数c中,this 也绑定全局对象,应该绑定到方法b对应的对象a上。这是 JavaScript的缺陷,解决方法:用that捕捉。
  • 在构造函数中,this 绑定到新创建的对象。
  • 使用applycall调用函数, this 将会被显式设置为传入的的第一个参数。
// 三段有意思的代码
window.test = 'test'
var obj = {
test: 'objtest',
getAge: function () {
var obj2 = {
test: 'obj2test',
getAge2: function () {
console.log(this.test)
}
}
return obj2;
}
}; obj.getAge().getAge2() // 'obj2test' // ==============
var obj = {
birth: 1990,
getAge: function () {
var b = this.birth; // 1990
var fn = function () {
return new Date().getFullYear() - this.birth; // this指向window或undefined
};
return fn();
}
}; // ============== var a = 1;
f1 = function () {
var a = 2;
console.log(this.a);
};
f1(); // 1

2. encodeURIComponent() 函数


定义和用法

encodeURIComponent() 函数可把字符串作为 URI 组件进行编码。

语法

encodeURIComponent(URIstring)

返回值

URIstring 的副本,其中的某些字符将被十六进制的转义序列进行替换。

说明

该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。

其他字符(比如 :;/?