首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JS 声明

声明和未声明变量之间的差异是: 声明变量的作用域限制在其声明位置的上下文中,而非声明变量总是全局的。...声明变量是它所在上下文环境的不可配置属性,非声明变量是可配置的(如非声明变量可以被删除)。...变量提升 由于变量声明(以及其他声明)总是在任意代码执行之前处理的,所以在代码中的任意位置声明变量总是等效于在代码开头声明。这意味着变量可以在声明之前使用,这个行为叫做“hoisting”。...console.log(x, y); // 0 2 function b() { // 当b被调用时, x = 3; // 全局变量x被赋值为3,生成全局变量。...y = 4; // 已存在的外部函数的y变量被赋值为4,生成新的全局变量。 z = 5; // 创建新的全局变量z,并且给z赋值为5。

2.5K10

【JavaScript】JavaScript 变量 ② ( JavaScript 变量语法扩展 | 同时声明多个变量 | 只声明变量赋值 | 声明变量赋值 | 声明变量直接进行赋值 )

展示效果 : 2、只声明变量赋值 在 JavaScript 中 , 使用 var 关键字 在 函数作用域或全局作用域...中 声明常量 , 不进行赋值 , 直接报错 'const' declarations must be initialized. ; 该报错在编译时就会报错 ; 代码示例 : // 只声明变量赋值...> 执行后 , 在 浏览器控制台 中 , 打印出的未赋值的变量值都为 " undefined " ; 3、声明变量赋值 在 JavaScript 中 , 声明变量 , 不对该变量进行赋值...在 JavaScript 中 , 声明变量 直接进行赋值 , 可以直接使用该变量 ; 如果 不显式声明变量 , 就直接进行 赋值使用 , 那么 这个变量会自动成为全局变量 , 在严格模式下直接报错..., 推荐这种方法 ; 代码示例 : // 声明变量直接进行赋值 // 该变量会变为全局变量 name2 = "Jerry";

6310
您找到你想要的搜索结果了吗?
是的
没有找到

python0135_变量名与下划线_dunder_声明与赋值

一般是为了区分已经有的标识符 ​ 使用max 会把max函数 屏蔽掉 使用max_ 不会屏蔽 max函数 两端双下划线(dunder) ​ 系统定义的标识符 模块名 函数名 变量名...locals() 查询本地变量 有一个内置的函数叫做 locals ​ 可以查询关于 locals 的帮助 ​ 返回的是一个包含当前域中所有变量的字典 声明和赋值都使用等号 声明并赋值...实践 虽然 a这个变量名 没有变 但是 id(a)变了 ​ 也就是说 a这个容器的 内存位置没变 但是a所指向的 变量位置 在内存中的位置 变了 两次赋值 都是STORE到a这个NAME...区别 变量的声明和赋值究竟有什么不同 第一次赋值时 声明和赋值是同时完成的 ​ 如果是 第二次赋值 呢?...纯赋值 声明了之后 再有 等号赋值 就是 第二次赋值 ​ 是 纯赋值 没有声明新的变量 总结 这次 了解了isidentifier的细节 关于 关键字 关于 下划线 如何查询 变量所指向的地址

35510

JS的 if 中的函数声明提升

ES6之前建议块级函数在严格模式下使用....在ES6非严格模式下, 块中函数声明会出现提升, 所以最好使用函数表达式来定义函数 ---- 走走流程看看到底发生了啥 我们可以先把, function a () {}注释掉, 可以看到报错了, Uncaught...ReferenceError: a is not defined, 所以if里的函数声明确实存在变量提升 ?...然后, 我们可以打点调试一下 在if 中的a=1语句之前, 我们可以看到函数声明已经提升了, 此时if作用域里a为函数 ? 而全局的a还是undefined ?...随后运行a=5, 则只是在块级作用域里的赋值, 不会对全局作用域的a值进行修改 ---- 当然, 如果使用函数表达式来声明函数的话, 可以避免 var a if (true) { console.log

3.7K20

JS学习系列 07 - 标签声明(Label Statement)

这就是goto语句的作用,通过标签声明一个代码块,然后在任何地方都可以执行 goto 'labe' 来进行程序跳转。...也就是说,如果一段代码既能够以语句的方式解析,也能用语法的方式解析,在JS中,会优先按语句来解析。 { a : 1 } 复制代码 上面这段代码,在JS中的执行结果是什么呢?...那么我们前面说过,JS是语句优先的,当一段代码既可以按照语句解析,又可以按照语法解析的时候,会优先按语句解析。...当把{}当做是代码块的时候,里面的 a : 1,是不是很像C语言goto语句的标签声明呢?...结束 这里通过几个例子,引出了 JavaScript 的标签声明语句(Label Statement),从而解释了一些我们常用写法的原理。

2.8K20

JS学习系列 07 - 标签声明(Label Statement)

这就是goto语句的作用,通过标签声明一个代码块,然后在任何地方都可以执行 goto 'labe' 来进行程序跳转。...也就是说,如果一段代码既能够以语句的方式解析,也能用语法的方式解析,在JS中,会优先按语句来解析。 { a : 1 } 上面这段代码,在JS中的执行结果是什么呢? 大家思考2分钟.......那么我们前面说过,JS是语句优先的,当一段代码既可以按照语句解析,又可以按照语法解析的时候,会优先按语句解析。...当把{}当做是代码块的时候,里面的 a : 1,是不是很像C语言goto语句的标签声明呢?...结束 这里通过几个例子,引出了 JavaScript 的标签声明语句(Label Statement),从而解释了一些我们常用写法的原理。

10610

JavaScript(js)的基本语法、变量声明和数据类型

注释 // 单行注释 /* 这是一个多行注释 多行注释 */ /* ··· /* 嵌套注释 */ ··· */ 声明 三种声明: var : 声明变量,可选择将其初始化为一个值。...let : 声明块范围局部变量(block scope local variable),可选择将其初始化为一个值。 const : 声明一个只读(read-only)命名常量。...声明变量 三种方式声明变量: var x = 42。这个语法可以同时用来声明局部和全局变量。 x = 42。这样就声明了一个全局变量并会导致JavaScript编译时产生一个严格警告。...在函数内部声明的变量,叫做局部变量,因为它只能在该函数内部访问。...// ReferenceError: y is not defined 变量声明提升 引用稍后声明的变量,而不会引发异常,称为变量声明提升(hoisting) 提升后的变量将返回 undefined 值

1.6K30
领券