使用“source script.sh“执行脚本和使用“./script.sh“执行脚本的区别
环境影响:source在当前Shell环境中执行脚本,因此所有修改都会影响到当前Shell。使用./执行脚本则在新的子进程中运行,其变更不会影响到父Shell。执行权限:使用./执行脚本需要脚本文件具有执行权限,而source不需要。适用场景: 使用source适合于需要修改或扩展当前Shell环境的场合,如设置环境变量或定义函数。使用./适合于执行独立的Shell脚本,尤其是那些不需要或不应该干扰当前She...
JavaScript手写专题——图片懒加载、滚动节流、防抖手写
元素距离可视区域顶部的高度,我们这里选用 getBoundingClientRect() 方法来获取返回元素的大小及其相对于视口的位置。对此 MDN 给出了非常清晰的解释: lazyload方法 <script> // 获取所有的图片标签 const imgs = document.getElementsByTagName('img') // 获取可视区域的高度 const viewHeight = win...
javascript中如何判断this的指向
在JavaScript中,判断`this`的指向是非常重要的,因为它决定了函数在执行时所引用的对象。下面是几种常见的判断`this`指向的情况: 1. 默认绑定:当一个函数独立调用时,`this`会绑定到全局对象(在浏览器环境中通常是`window`对象)。 ```javascript function foo() { console.log(this); } foo(); // 输出:window ``...
JavaScript 初学者的 Promise
介绍 在 JavaScript 中使用异步代码时,有时需要等待代码返回数据,然后再进一步处理数据。 例如:读取文件需要一些时间,或者从服务器获取数据可能需要一些时间,并且由于这是异步任务,因此它会被委托。 然而,在我们可以在代码中处理和执行任何进一步操作之前,我们需要这些数据。这就是 Promise 非常有帮助的地方。 什么是承诺? 在引入 Promise 之前,管理异步操作是使用回调完成的。 回调是作为参...
Js-JavaScript-三种弹出提示框-alert-confirm-prompt-ai插件
文章目录 1.alert-提示框2.confirm-确认框3.prompt-输入框4.总结 1.alert-提示框 弹出一个提示框,只有一个确定按钮。 alert("知了插件"); 如下图所示: 2.confirm-确认框 弹出一个确认框,选择Yes返回true,选择No放回false。 function test(){ var rlt=confirm ("是否继续?", true, "提示"); $.wr...
javaScript数组-(进阶算法)-计算正整数各个位数上的数字之和
基础 javaScript数组-(进阶算法)-计算正整数各个位数上的数字之和 function sumDigits(num) { // 检查输入是否为数字,增强代码健壮性 if (typeof num !== 'number' || isNaN(num) || !isFinite(num)) { throw new Error('Input must be a finite number'); } let ...
script标签中defer和async的区别
如果没有defer或async属性,浏览器会立即加载并执行相应的脚本。它不会等待后续加载的文档元素,读取到就会开始加载和执行,这样就阻塞了后续文档的加载。 下图可以直观的看出三者之间的区别: 其中蓝色代表js脚本网络加载时间,红色代表js脚本执行时间,绿色代表html解析。 defer 和 async属性都是去异步加载外部的JS脚本文件,它们都不会阻塞页面的解析,其区别如下: ●执行顺序: 多个带async属...
JavaScript原理篇——深入理解作用域、作用域链、闭包、this指向
套,内部作用域可以访问外部作用域的变量,但外部作用域不能访问内部作用域的变量。块级作用域(Block Scope):块级作用域指的是由一对花括号 {} 包裹起来的代码块内部所创建的作用域。在 JavaScript 中,使用 let 和 const 关键字声明的变量具有块级作用域,即只在声明它们的代码块内部可见。块级作用域可以帮助我们避免变量污染和提供更好的封装性。 全局作用域 局部/函数作用域 作用域链 作用...
如何在JavaScript中提高性能
在JavaScript中提高性能是一个涉及多个方面的任务,包括代码优化、数据结构选择、异步编程、避免全局查找、内存管理等。以下是一些关键的策略和技巧,可以帮助你提高JavaScript代码的性能: 1. 优化循环 使用for循环代替forEach,特别是在处理大型数组时。避免在循环内部执行复杂的计算或DOM操作。将循环内的不变表达式或查找操作移至循环外部。 2. 减少全局查找 尽量避免在函数内部使用全局变量...
【零基础入门TypeScript】命名空间
目录 定义命名空间 嵌套命名空间 命名空间是一种对相关代码进行逻辑分组的方法。这是内置在 TypeScript 中的,与 JavaScript 不同,在 JavaScript 中,变量声明进入全局范围,如果在同一个项目中使用多个 JavaScript 文件,则可能会覆盖或误解相同的变量,这将导致“全局命名空间污染问题” JavaScript。 定义命名空间 命名空间定义以关键字命名空间开头,后跟命名空间名称,...