一些你可能不熟悉的JS知识点总结

一些你可能不熟悉的JS知识点总结

理解JS中的this指向

在 Javascript 中,“this”是一个关键字,它指向函数执行时的上下文对象。在全局作用域中,“this”指向全局对象(window / global),在函数内部,“this”指向函数调用时的“拥有者”(即调用该函数的对象)。更多的用法和示例请参考以下代码:

let obj = {
  name: 'John',
  sayName: function() {
    console.log(this.name);
  }
};

let otherObj = {
  name: 'Jane'
};

// 绑定this
obj.sayName.call(otherObj); // 'Jane'
obj.sayName.apply(otherObj); // 'Jane'

// 箭头函数中的this
let arrowFn = () => {
  console.log(this);
}
arrowFn(); // window/global

怎样获取一个字符串的所有字符?

在 JavaScript 中,我们可以使用字符串方法 .charAt() 或直接使用字符串下标来获取一个字符串的单个字符(即单个字符的 ASCII 码)。但是,如果要获取一个字符串的所有字符,可以使用字符串方法 .split() 并传递一个空字符串作为分隔符来实现。

let str = 'Hello World';
let chars = str.split('');
console.log(chars); // ['H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd']

理解 JavaScript 中的闭包

在 JavaScript 中,每个函数都是一个闭包。闭包指的是一个函数可以访问其定义时所在的词法作用域中的变量。这意味着一旦一个函数在定义时访问了其外部的变量,即使该变量在函数执行时不再存在,它也可以访问到在定义时的值。

function outer() {
  let name = 'John';

  function inner() {
    console.log(name);
  }

  return inner;
}

let fn = outer();
fn(); // 'John'

在上述代码中,outer 函数返回了一个内部函数 inner,并将该函数赋值给 fn 变量。然后,在调用 fn 时,它仍然能够访问外部变量 name,即使在 fn 被调用时,在 outer 中定义的 name 已经不复存在。

以上是 JavaScript 的一些高级知识点的总结。能够理解和掌握这些知识点将会对你的 JavaScript 编程能力产生积极的影响。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一些你可能不熟悉的JS知识点总结 - Python技术站

(0)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • JS使用window.requestAnimationFrame()对列表切片进行渲染

    当需要对一个大型列表进行渲染时,最好使用requestAnimationFrame()代替setTimeout()或setInterval(),因为requestAnimationFrame()会在每一帧结束后更新状态,这比定时器更精确地匹配帧率并避免过多的重绘。 以下是使用window.requestAnimationFrame()对列表切片进行渲染的攻略…

    JavaScript 2023年6月11日
    00
  • C#基于正则表达式实现获取网页中所有信息的网页抓取类实例

    C#基于正则表达式实现获取网页中所有信息的网页抓取类实例 1. 前言 网页抓取是实现自动化数据采集、分析和处理的重要手段之一。本篇文章将介绍使用C#基于正则表达式实现获取网页中所有信息的网页抓取类实例。 2. 实现过程 2.1 步骤一:获取网页内容 使用C#自带的HttpClient类可以很方便地获取网页的原始内容。首先,我们需要先定义一个GetHtml方法…

    JavaScript 2023年6月10日
    00
  • JS解析url参数为json对象问题

    将URL参数解析为JSON对象是JavaScript中的一项常见任务。在处理URL参数时,可以使用一些内置函数和库来使此任务变得简单。以下是一个完整的攻略,它将指导你如何使用不同的方法来解析URL参数为JSON对象: 方法一:使用URLSearchParams(推荐) URLSearchParams是在ES2015中引入的新的JavaScript API,在…

    JavaScript 2023年5月27日
    00
  • JS中位置与大小的获取方法

    当我们开发JavaScript程序时,经常需要获取页面元素的位置与大小,以便进行后续的操作。接下来,我将为大家介绍JS中获取元素位置与大小的方法。 获取元素位置 1. offsetTop和offsetLeft属性 offsetTop和offsetLeft是用来获取某个元素相对于其offsetParent元素(指具有定位属性的父元素)的左上角距离的。 cons…

    JavaScript 2023年6月10日
    00
  • JavaScript哪些场景不能使用箭头函数

    JavaScript中的箭头函数是ES6(ECMAScript 2015)新增的语法特性,它提供了一种简洁的定义函数的方式,可以在函数体内省略this、arguments、super和new.target等关键字的操作。但是,在某些场景下,使用箭头函数可能会导致错误或意想不到的行为,因此需要注意哪些情况下不能使用箭头函数。以下是一些不能使用箭头函数的场景: …

    JavaScript 2023年5月28日
    00
  • JS数组方法reduce的妙用分享

    下面是“JS数组方法reduce的妙用分享”的完整攻略。 简介 JavaScript中,reduce()是一个用于数组中元素运算的方法,它接收一个回调函数作为参数,返回一个计算结果。reduce()方法可以用于对数组中的元素进行求和、求积、寻找最大、最小值等操作。 用法 reduce()方法的使用方式如下: arr.reduce(callback, init…

    JavaScript 2023年5月27日
    00
  • 详解js私有作用域中创建特权方法

    下面我将详细讲解如何在 JavaScript 的私有作用域(闭包)中创建特权方法,希望能对你有所帮助。 什么是特权方法? 在 JavaScript 中,特权方法指的是可以访问私有作用域中成员的公有方法。通常情况下,私有作用域中的成员对于外界来说是不可见的,但是通过特权方法,我们可以将私有作用域中的成员暴露出来,以便外界调用和使用。 如何创建特权方法? 创建特…

    JavaScript 2023年6月10日
    00
  • 教你用typescript类型来推算斐波那契

    下面是教你用 TypeScript 类型来推算斐波那契的完整攻略。 一、斐波那契数列的定义 斐波那契数列是指这样一个数列:0、1、1、2、3、5、8、13、21、34、……我们定义 f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>=2,n∈N*)。 二、使用 TypeScript 声明斐波那契数列类型 我们可以使用 TypeScr…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部