返回

对新手而言,掌握JavaScript必备小知识(三)

前端

一、 闭包、this、作用域、正则验证

1.1 闭包的概念

在函数内部声明的函数,可以访问函数的局部变量。闭包就是能够读取其他函数内部变量的函数。

举例说明:

function outerFunction() {
  let variable = "闭包";

  function innerFunction() {
    console.log(variable); // "闭包"
  }

  return innerFunction;
}

const innerFunctionReference = outerFunction();
innerFunctionReference(); // "闭包"

1.2 this

this关键字指向当前正在执行的函数所属的对象。它允许你访问对象属性和方法,而无需显式传递对象作为参数。

举例说明:

const person = {
  name: "小明",
  age: 20,

  greet: function() {
    console.log(`我的名字是${this.name},今年${this.age}岁。`);
  }
};

person.greet(); // "我的名字是小明,今年20岁。"

1.3 作用域

作用域是指变量和函数可被访问的范围。在JavaScript中,有全局作用域和局部作用域之分。

全局变量: 在脚本的任何地方都可以访问的变量。

局部变量: 在函数内部声明的变量,只在该函数内部可被访问。

举例说明:

let globalVariable = "全局变量"; // 全局变量

function outerFunction() {
  let localVariable = "局部变量"; // 局部变量

  console.log(globalVariable); // "全局变量"
  console.log(localVariable); // "局部变量"
}

outerFunction(); // "全局变量" "局部变量"

console.log(globalVariable); // "全局变量"
console.log(localVariable); // ReferenceError: localVariable is not defined

1.4 正则验证

正则验证是一种用于验证字符串是否符合特定格式的方法。在JavaScript中,可以使用正则表达式来进行正则验证。

正则表达式的语法:

/pattern/flags

其中,pattern是正则表达式的模式,flags是正则表达式的标志。

常用的正则表达式模式:

模式 说明
^ 匹配字符串的开头
$ 匹配字符串的结尾
. 匹配任何字符
* 匹配前面的字符零次或多次
+ 匹配前面的字符一次或多次
? 匹配前面的字符零次或一次
[] 匹配指定范围内的字符
{} 匹配指定次数的字符

举例说明:

const emailRegex = /^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/;

const validEmail = "example@email.com";
const invalidEmail = "example";

console.log(emailRegex.test(validEmail)); // true
console.log(emailRegex.test(invalidEmail)); // false

结语

在本文中,我们详细探讨了闭包、this、作用域和正则验证等概念,帮助初学者全面理解JavaScript的语法和应用。希望这些知识能够帮助大家开发出更优质的JavaScript应用程序。