javascript常用的自定义函数

213 阅读1分钟

在 JavaScript 中,var、const、let 和在变量前不加关键字都用于声明变量,但它们之间存在一些重要的区别。 

 1、var: 

  •  使用 var 声明的变量是函数作用域(function-scoped)的。 
  • 在全局范围内声明的 var 变量会成为全局对象(window 或 global)的属性,这意味着它们可以被全局访问。
  • var 声明的变量可以被重复声明,后面的声明会覆盖前面的声明。 
  • var 变量存在变量声明提升(hoisting)的特性,即变量在其作用域范围内任何位置都可被引用,无论实际声明在哪里。 

 2、let:

  • 使用 let 声明的变量是块作用域(block-scoped)的。 
  • let 声明的变量只在当前块(花括号内)内部有效。 
  • 不允许重复声明同名的 let 变量。 
  • 不存在变量声明提升,即变量只能在声明之后使用。 

 3、const: 

  • 使用 const 声明的变量也是块作用域的,与 let 类似。 
  • const 声明常量,常量的值在声明后不能再被修改。 
  • 声明时必须进行初始化,否则会导致错误。 
  • 对于对象和数组等引用类型的常量,虽然不能重新赋值,但对象或数组内部的属性或元素是可以修改的。 

4、 不加关键字: 

  • 在 JavaScript 中,如果没有使用任何关键字(如 var、const 或 let)来声明变量,那么该变量会成为全局变量。  

  • 不推荐在声明变量时不加关键字,因为这样会污染全局命名空间,并可能导致变量冲突和意外覆盖。

1、睡眠一定的时间

function sleep(ms) {
    let start = Date.now()
    let end = start + ms
    while (true) {
        if (Date.now() > end) {
            return
        }
    }
}