javascript中严格模式中的作用域问题

跟着coderwhy老师学习JS高级语法 with-eval-strict 跟着coderwhy老师学习JS高级语法 with-eval-strict 阅读详情

通过一个小例子的对比,来看严格模式下与非严格模式中作用域的不同表现。

代码1:

'use strict';
let foo = 'enen';
if(true){
	let foo = 'heihei';
	console.log(foo); // heihei
}
console.log(foo); // enen

输出结果:

heihei
enen

代码2:

var foo = 'enen';
if(true){
	var foo = 'heihei';
	console.log(foo); // heihei
}
console.log(foo); // heihei

输出结果:

heihei
heihei

同一个{} 体内,两种不同结果,说明严格模式中块级作用域内的同名变量不受外部影响。

JS严格模式有什么特点 开启严格模式 代码(或一个函数)一开始插入一行 `'use strict'` 即可开启严格模式 'use strict' // 全局开启 function fn() { 'use strict' // 某个函数开启 } 特点 全局变量必须声明 否则会造成全局变量的污染 'use strict' n = 10 // ReferenceError: n is not defined 禁止使用 `with` 使用 with 让代码不易阅读 'use strict' va 阅读详情

相关推荐

告别Vysor!用Scrcpy在Mac上无线投屏安卓手机(附魅族16th闪退修复实战)

本文详细介绍了如何在Mac上配置和使用开源投屏工具Scrcpy,实现安卓手机无线投屏的高效解决方案。从基础环境准备到高级功能调优,包括无线连接配置、输入控制增强、多设备管理和性能优化等实用技巧,特别针对魅族16th等机型的闪退问题提供了修复方案,帮助用户彻底告别Vysor等商业软件。

weixin_28712661的博客 394

JavaScript作用域详解;严格模式概念

首先我们要了解什么是作用域? 作用域值得是我们有权访问的变量集合。 -1.JavaScript 函数作用域 JavaScript中有两种作用域类型: - 局部作用域 - 全局作用域 所谓函数作用于就是:每个函数创建一个新的作用域; 作用域决定了这些变量的可访问性; 函数内部定义的变量在函数外部是不可访问的。 -1.1局部JavaScript 变量 在JavaScript 函数中声明的变量,会成为函数的局部变量 局部变量的作用域是局部的:只能在函数内部访问它们。 例如: 例子中 a 只能在函数

qq_43968060的博客 385

高分系列卫星轨道、传感器参数等信息

遥感卫星数据简介-高分系列

中遥科 3309

javascript严格模式详解

除了正常模式下,es5中新增了严格模式,接下来将详细针对严格模式分析。 一、使用严格模式的好处 1、消除javascript中不合理,不严谨的地方,减少怪异行为。 2、消除javascript代码的不安全之处,保证代码的安全运行。 3、提高编译效率,增强运行速度。 4、为未来新版本的javascript做铺垫。 二、使用严格模式的标志 使用严格模式的标志是增添一个字符串,"use strick",对于一些低版本的浏览器,会将其当做一个字符串来解析。 三、如何调用 严格模式的调用主要分为两种,一种是整个

weixin_47450807的博客 947

Andriod应用开发基础项目——记账本

本项目采用Java语言编写,是一款基于Android Studio开发的简易项目,本项目可以提高Java语言编写软件的能力,同时加深对开发软件Android studio有了更深层次的掌握,很适合初学者。在项目过程中,遇到了一些挑战和问题,但通过不断的努力和学习,最终取得了成功。未来,可以还可以继续优化App的功能和性能,增加更多实用的功能,提升用户体验。

eryasd的博客 3467

Palabos User Guide中文解读 | 第五章 | Palabos编程 (跳过了第四章Palabos-Java接口)

作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。 Palabos User Guide Release 1.0 r1 Copyright © 2019 University of Geneva Jul...

Yulan Fang's notes. 2298

js this为undefined情况

在严格模式下,独立function中的this指向为undefined;非严格模式指向为全局作用域。

MR_SNAIL的博客 3196

Android HWC硬件合成器实战:从SurfaceFlinger到显示驱动的完整流程解析

本文深入解析Android HWC硬件合成器从SurfaceFlinger到显示驱动的完整流程,揭示HWC如何优化图形性能并降低功耗。通过实战案例和调试技巧,帮助开发者掌握硬件加速的图层混合技术,提升移动设备的显示效率。

gaochao的博客 494

严格模式和非严格模式区别

严格模式和非严格模式有什么区别: 严格模式对正常的 JavaScript语义做了一些更改。首先,严格模式通过抛出错误来消除了一些原有静默错误。其次,严格模式修复了一些导致 JavaScript引擎难以执行优化的缺陷:有时候,相同的代码,严格模式可以比非严格模式下运行得更快。第三,严格模式禁用了在ECMAScript的未来版本中可能会定义的...

weixin_33797791的博客 1249

YOLOv11原创改进专栏|原创自研篇|DAA模块手把手添加教程

个人简介:大家好!我是 DAA 注意力机制,堪称深度学习中的“聚光灯”。我的任务是帮助模型聪明地识别关键特征,就像一位经验丰富的侦探,能够在繁杂的数据中找到重要线索。通过结合通道和空间的注意力,我能确保模型把重点放在最有价值的信息上,从而提升识别准确率。简单来说,我就是帮助你的模型变得更加专注、敏锐,让它在一堆数据中轻松找到“宝藏”,为检测精度加分!动态适应性特征提取DAA通过动态生成卷积核来适应输入特征的变化,从而实现针对不同数据的自适应特征提取。

mywhyyds的博客 379

【vsomeip3 教程】SOME/IP中间件去抖策略全解析

本文探讨了在SOME/IP中间件中实现Debounce(去抖动)机制的必要性和实现原理。文章首先分析了中间件层进行Debounce的四大动机:多订阅者共享收益、语义显式化、协议噪声屏蔽和入口处背压控制。接着详细阐述了Debounce的底层原理,包括变化检测机制(ignore和mask的应用)、时间门控策略(interval的两种时间基准)以及超时补发机制,并通过表格清晰展示了不同参数组合的效果和适用场景。最后,文章提出了工程落地的具体方法,包括策略选型、ignore/mask的设计方法论以及分层验证调试的实

探索C++编程的奥秘,分享深入的技术见解和实践,旨在激发读者创造力与解决问题的思维。 232

JS的解析顺序和作用域(严格模式)

在Android中,我们通常需要Activity跟Service进行通讯,很多人只知道Activity掉用Service,却不知道Service如何将数据返回给Activity。其实Service返回数据给Activity有很多种方法,1、广播。2、回调。3、Activity每隔几秒去取Service的方法等等。现在我们只讨论第二种方法。回调。举个例子,我们Activity里面有两个参数a 和b,...

li123128的博客 210

Halcon 形态学 开发案例 (开运算opening(先腐蚀再膨胀)、闭运算closing(先膨胀再腐蚀))

算子方法:功能:使用用户自定义的结构元素对区域进行开运算参数: Region(输入参数) :输入区域 StructElement(输入参数) :结构元素(区域) RegionOpening(输出参数) :开运算后的区域功能:使用圆形结构元素对区域进行开运算参数: Region(输入参数) :输入区域 RegionOpening(输出参数) :开运算后的区域 Radius(输入参数) :圆形结构元素的半径功能:使用矩形结构元素对区域进行开运算。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 1618

JS 严格模式和非严格模式

Javascript 设计之初,有很多不合理、不严谨、不安全之处,例如变量未定义即可使用n = 100。严格模式用于规避这些问题。而现在 ES 规范已经普及,从语法上已经规避了这些问题。

qq_61739305的博客 528

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

JS中的with-eval-strict

JS中的with语句 with语句用来扩展一个语句的作用域链 var obj = { name:"hello world" age:18 } with(obj){ console.log(name) console.log(age) } //这样的话name就会先去obj查找,然后在跟原本一样一层一层往上找 JS中的eval函数 eval是一个特殊的函数,它可以将传入的字符串当JS代码来运行 var evalString = `var message = "hello world";conso

w626394316的博客 995

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

JavaScript 中被遗忘的关键字(with)

如果语句体中使用的不限定名称与作用域链中的某个属性匹配,则该名称会绑定到该属性以及包含该属性的对象。的代码片段中的标识符)时,JavaScript 会检查一系列对象,如果其中一个对象具有与你在代码中编写的标识符同名的属性,则 JavaScript 会使用该属性的值。通过向作用域链中添加内容,几乎每一行代码的运行速度都会变慢,因为需要搜索的对象数量会增加,才能将标识符解析为值。会遮蔽函数的参数,所以我们最终计算的是两个函数的和,这当然是 N​​aN。是的,朋友们,信不信由你,这就是 JavaScript。

每天都要努力学习哦~~ 709

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【JavaScript】用面向对象的思维学习JavaScript

用放眼望去全是对象的观点去分析js的语法 学习,要使外在的知识嵌入到自己已有的思维模型中,不要学完全不兼容的东西,没用。 1.JavaScript全能 前后端,桌面程序,手机APP都能开发。 2.ES6变更比较大,每年都会发布新的特性,会修复很多bug。ES是标准 3.liveserver 插件 ,保持自动打开浏览器,显示效果。 两个屏幕开发软件,一个编码,一个看效果时很方便。 4.js代码一般放在最后面,因为程序是顺序执行,这样不会影响其他页面的显示。 5.js代码都放在服务器端,用户.

ghuiai17的博客 279

js中关于this指向的问题的简单总结

1:在全局作用域下 this对象指向的是window对象例如:结果如下:2:在函数作用域下在非严格模式下: this的指向依旧是window对象例如:结果如下:在严格模式下:this的指向是undefined例如:结果如下:所以在函数里面,在严格模式下,this的指向或者值为undefined3:在对象里面this的指向是当前该对象例如:结果如下:关于this指向有个经...

weixin_33909059的博客 100

JS学习笔记(二)

零碎知识点 避免使用浮点数运算 ===与 !==对等式两边的数据要求更严格,值与数据类型都要相等 ==与 != 会对等式进行强制类型转换 一般把js链接放到html文本的后面,在加载完html文件后在调用js不会导致js堵塞html的加载 JS的运行过程 把代码下载到用户电脑(可能使用到压缩技术) 需要一些信息的时候,会从服务器下载,存储到服务器的一个内存空间中 存在交互的时候,交互代码会被...

weixin_41979347的博客 236

04-JS高阶:严格模式、递归、赋值、高阶函数

JavaScript 除了提供正常模式外,还提供了严格模式(strict mode)。ES5 的严格模式是采用具有限制性 JavaScript变体的一种方式,即在严格的条件下运行 JS 代码。严格模式在 IE10 以上版本的浏览器中才会被支持,旧版本浏览器中会被忽略。严格模式对正常的 JavaScript 语义做了一些更改:1.消除了 Javascript 语法的一些不合理、不严谨之处,减少了一些怪异行为。2.消除代码运行的一些不安全之处,保证代码运行的安全。3.提高编译器效率,增加运行速度。

weixin_55702682的博客 1047

JavaScript 作用域、变量提升和严格模式

文章目录作用域全局作用域函数作用域变量提升初始化问题严格模式 作用域 全局作用域 直接编写在script标签内的代码,都在全局作用域。其实就是在函数外部定义的。全局作用域在页面打开时创建,在页面关闭时销毁。在全局作用域有一个全局对象window,我们可以直接使用它。而且所有的全局变量都是window的属性,全局函数都是window的方法。全局变量在任何地方都可以访问。 var x=5; console.log(x); console.log(window.x); func(); function func(

xiji333的博客 291

JavaScript中的变量提升和严格模式

1.什么是变量提升 所谓的变量提升指的是:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体(作用域)的最顶部。 下面我们通过一个例子来详细说明一下。 //变量声明在使用之前 var x; console.log(x);//undefined //变量声明在使用之后 console.log(y);//undefined var y;...

Cairo960918的博客 536

常见的JavaScript日常问题

考虑下面代码:​​​​​​​。

热爱可抵岁月漫长 361

JavaScript-2

JavaScript if else 语句 跟java一样的 JavaScript switch语句 JavaScript for循环 For/In 循环 需要注意一下 这个就是foreach循环 JS while循环 注意: 通过标签引用,break语句可用于跳出任何JS代码块 JS typeof null undefined typeof 即使返回类型的 任何变量都可以通过设置值为undefined来清空,类型为undefined undefined 和null 类型不同 值相同 JS 类型转换 6中不

qq_33369149的博客 125

JavaScript面向对象作用域

<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>作用域</title> <script type="text/javascript" > var add = function(){ num = 50; .

代码人生的博客 165

关于严格模式普通函数和箭头函数中this的指向问题

一.全局作用域中的this指向 1.在ES5,ES6中,全局作用域下无论是否为严格模式this都指向window,代码如下: "use strict"; console.log(this);//window 2.全局作用域中函数中的this:es5,非严格模式this指向window,严格模式下的this指向undefined;es6箭头函数的this都指向window。代码如下: //普通函数...

lovelyshuoshuo的博客 1329
上一篇: 用一个小例子,来分析nodejs的异步调用的顺序
下一篇: 在github上搭建自己的主页和顶级域名的绑定
Wang's Blog
博客等级 码龄12年 7418粉丝 2402原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值