num1=1;定义的是一个全局(window)属性,可以通过window.num1访问,
Object.getOwnPropertyDescriptor(window, 'num1')
{value: 1, writable: true, enumerable: true, configurable: true}
可以看到num1是可变,可遍历(keys(window)或for key in window),可配置的。
configurable
true if and only if the type of this property descriptor may be changed and if the property may be deleted from the corresponding object.
就是说configurable是false,则不能用delete删除的。
var test=1;
Object.getOwnPropertyDescriptor(window, 'test')
{value: 1, writable: true, enumerable: true, configurable: false}
由此可见不加var相当于给window加了一个configurable=true的属性,加var相当于给window加了一个configrable=false的属性。
另外let和const定义的变量也是configurable=false。
还可以通过Object.definedProperty(window, 'num3', {configurable:true, writable:true, enumerable:false, value:3})来详细定义对象的属性。
分享到:
相关推荐
rsa.js var b = new RSAKey; var b = new RSAKey;
一、迷思!由一段代码引发的疑惑 请看如下代码: 代码如下: for... 如果JavaScript中用var声明的变量可视为局部变量,那么能访问到这个变量的作用域就是这个变量的局部作用域。如上例,在console.log行处,依然有j、k
### JavaScript 变量作用域详解 #### 一、引言 在探讨JavaScript的面向对象特性之前,理解变量作用域的概念至关重要。本篇文章旨在通过一系列示例和解释,帮助读者掌握JavaScript中的变量作用域机制。 #### 二、...
本文档主要探讨了在JavaScript中使用`var`关键字处理`for`循环时的一些特殊技巧及其背后的原理。此外,文档还简要提及了`let`关键字的使用,并通过一个具体的示例来展示如何避免循环中的常见陷阱。 #### `var`...
var-t, var t;//学习艺术,使用 JavaScript ;##Learning 关于艺术,使用 JavaScript 。###//我喜欢艺术和代码。我已经经花了几年的时间来讨论和教学编程,如年龄为 8,等于 80年。 我对所有年龄的兴趣都是艺术。 以...
在 JavaScript 中,使用 var 关键字声明的变量具有函数作用域。换言之,var 声明的变量只能在当前函数内访问。如果我们在函数外部访问 var 声明的变量,将会抛出一个 ReferenceError。 var 声明的变量还存在变量...
在JavaScript中,使用var关键字与不使用var关键字声明变量是两种不同的方式,它们在执行上下文、作用域以及可删除性等方面都存在明显的区别。 首先,使用var关键字声明变量是一种显式的变量声明方式,它具有作用域...
js.js 是一个用 JavaScript 编写的 JavaScript 解释器 Instead of trying to create an interpreter from scratch, SpiderMonkey is compiled into LLVM and then emscripten translates the output into ...
JavaScript作用域是编程中至关重要的概念,它规定了变量和函数的可见性和生命周期。了解JavaScript作用域对于编写高效、安全的代码至关重要。本篇将详细解释JavaScript作用域的几个核心特性,包括无块级作用域、函数...
闭包是JavaScript中实现数据隐藏和封装的一种重要手段,对于理解和编写高效的JS代码至关重要。 1. **作用域的理解** - **全局变量**:在整个程序中都可访问的变量,它们在整个脚本的生命周期内都存在。 - **局部...
总结来说,`var`关键字在JavaScript中用于声明变量,它对变量的作用域有着直接影响。在函数内部,不使用`var`声明的变量会成为全局变量,而使用`var`则声明为局部变量。为了代码的清晰性和避免潜在问题,建议始终...
JavaScript ES6 中的 `var`、`let` 和 `const` 是三种不同的变量声明方式,它们在作用域、提升(hoisting)以及可变性上存在显著差异。这些新特性对于理解和编写更健壮的JavaScript代码至关重要。 1. **块级作用域...
three.js是一个强大的JavaScript库,专为WebGL提供3D图形渲染,使开发者能够轻松地在浏览器中构建丰富的3D场景。 首先,我们需要了解three.js的基础知识。它提供了一个完整的框架,包括场景、相机、几何体、材质、...
然而,如果你在不使用`var`的情况下声明一个变量,JavaScript会默认将其视为全局变量,无论你是在哪个作用域中声明的。这是因为JavaScript的函数作用域和变量提升(hoisting)特性。这意味着即使你在一个函数内部...
JavaScript中的变量声明有多种方式,包括使用`var`、不使用`var`(在非严格模式下)以及ES6引入的`let`和`const`。这些不同的声明方式有着显著的差异,对代码的可读性、作用域和变量生命周期产生重要影响。 首先,...
在JavaScript编程语言中,变量的声明有两种方式:使用`var`关键字...在编写JavaScript代码时,推荐始终使用`var`、`let`或`const`来明确声明变量,并遵循最佳实践,如在函数内部使用`let`或`const`以限制变量的作用域。
js实现php中var_dump函数方法
总之,BigDecimal.js是一个强大的JavaScript库,专门用于处理大数的高精度计算,通过引入"BigDecimal-all-last.min.js",开发者可以获得精确的大数运算能力,从而避免JavaScript原生数据类型的精度问题。在开发过程...
- **作用**:对JavaScript代码求值然后执行。 - **语法**:`eval(code)` - **示例**: ```javascript var code = "var a = 1; a += 2;"; eval(code); console.log(a); // 输出 3 ``` ##### 21. exec方法 - **...
只要是写过点JS代码,很简单一个var 就完事了。那对于JS编译器背后它又发生了什么呢?那就一步步通过代码来讲起。 代码如下: x = 1; alert(x); var y = function() { alert(x); var x = 2; alert&#...