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

yizhihongxing

一些你可能不熟悉的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日

相关文章

  • javascript 拖动_cookie_ajax等

    JavaScript 是一门非常强大的编程语言,可以支持前端页面的实时交互。其中,拖动、cookie 和 Ajax 是 JavaScript 最为常用的功能之一。下面将详细讲解这些内容的完整攻略。 JavaScript 拖动 通过 JavaScript,可以实现网页元素的拖动效果。具体实现方式如下: 首先,通过 JavaScript 获取需要拖动的元素。 l…

    JavaScript 2023年6月10日
    00
  • 一文搞懂JavaScript中的内存泄露

    下面是详细讲解“一文搞懂JavaScript中的内存泄露”的完整攻略: 1. 什么是内存泄漏 内存泄漏指的是程序中使用的内存不会被垃圾回收器(Garbage Collector)自动释放,导致内存占用过多,程序变得越来越慢。JavaScript中出现内存泄露的原因主要是因为使用了不当的变量定义或数据结构,或者是不恰当地使用了闭包或事件监听等机制。 2. 如何…

    JavaScript 2023年6月10日
    00
  • 让人蛋疼的JavaScript语法特性

    当我们熟悉JavaScript语法后,我们可能会遇到一些令人蛋疼的特性。这些特性可能会造成一些奇怪的现象,因此,在编写JavaScript代码时,我们需要格外小心以避免这些特殊情况。以下是一些常见的让人蛋疼的JavaScript语法特性。 隐式类型转换 JavaScript是一种动态类型的语言,因此,强制类型转换是一种必需的功能。但是,有些情况下JavaSc…

    JavaScript 2023年5月27日
    00
  • HTML减肥 精简HTML标记制作网页

    下面是关于”HTML减肥 精简HTML标记制作网页”的完整攻略: 前言 在现代互联网时代,网络速度已经得到了很大的提升,但仍有很多人面临着网络速度慢的问题。因此,为了优化网站的加载速度,我们需要减肥和简化HTML代码,以便达到更快的加载速度和更好的用户体验。 精简HTML标记的方法 1. 优化HTML结构 通过简化HTML的结构,可以减少标记的数量和代码的大…

    JavaScript 2023年5月19日
    00
  • BOM中location对象的属性和方法

    BOM中的location对象表示当前窗口的URL位置,并且可以用它来操作浏览器的历史记录。下面是location对象的属性和方法: location属性 location.href 用于读取或设置当前窗口的URL。如下所示: // 获取当前窗口的URL const currentUrl = location.href; console.log(curren…

    JavaScript 2023年6月11日
    00
  • JavaScript接口实现代码 (Interfaces In JavaScript)

    JavaScript在ES6之前并没有真正的接口(Interfaces)的概念,但是我们可以通过一些技巧来实现接口。在这篇文章中,我将为你呈现一个完整的JavaScript接口实现代码攻略: 什么是JavaScript接口? 接口是一个描述类应该如何实现函数的集合。在函数式编程中,接口是一个纯粹的抽象概念,用于描述具有特定行为或功能的组件。 如何实现Java…

    JavaScript 2023年5月18日
    00
  • JavaScript 拖拽实现(附注释),最经典简单短小精悍!

    以下是JavaScript拖拽实现的详细攻略: 概述 拖拽实现是网页中常见的交互效果,它的实现原理是借助JavaScript事件和DOM操作。本文将带您全面了解JavaScript拖拽的实现方法。 基本原理 拖拽实现的基本原理如下: 给需要拖拽的元素绑定mousedown事件。 鼠标按下时,记录鼠标相对元素位置,并给document绑定mousemove和m…

    JavaScript 2023年6月11日
    00
  • JS数组求和的常用方法总结【5种方法】

    下面是JS数组求和的常用方法总结【5种方法】的详细攻略: 1. 普通循环求和 利用循环遍历数组中的每一个元素,并累加求和。具体代码如下: function sum(arr) { let result = 0; for (let i = 0; i < arr.length; i++) { result += arr[i]; } return result…

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