一文搞懂:JS严格模式“use strict”
什么是JS的严格模式
JS严格模式概念是在ES5中引入的,在此模式下,JS对语法的要求会变的严格,某些不太严谨的代码在严格模式下将不能运行。
如何启用严格模式
只需要JS代码的起始添加 "use strict"即可。如:
"use strict";
abc = "http://jshaman.com";
console.log(abc);

如此执行便会报错,因为使用变量时没有事先声明。
注意:
如果将 "use strict"; 指令添加到代码第一行,则表示整个JS代码都会处于严格模式。
而如果只在函数的第一行代码中添加,则表示只在该函数中启用严格模式。
严格模式的限制
1、不允许使用未声明的变量;
2、不允许删除变量或函数;
3、函数中不允许有同名的参数;
4、eval 语句的作用域是独立的;
5、不允许使用 with 语句;
6、不允许写入只读属性;
7、不允许使用八进制数;
8、不能在 if 语句中声明函数;
9、禁止使用 this 表示全局对象。
严格模式的影响
客观的说,严格模式会使代码更规范,不易出现不规范书写带来的BUG隐患。但对于JS的灵活、随意的优势,也造成了一些影响。
如何判断处于严格模式下
启用严格模式后,代码中除了新增”use strict“外,无任何显式变化。
从代码中判断是否存在此字符,可以得知是否启用了严格模式。
此外,从AST中还可以看到代码的抽象语法树中新增了Directive属性,因此也可以判断此属性值。

相关文章:
一文搞懂:JS严格模式“use strict”
什么是JS的严格模式 JS严格模式概念是在ES5中引入的,在此模式下,JS对语法的要求会变的严格,某些不太严谨的代码在严格模式下将不能运行。 如何启用严格模式 只需要JS代码的起始添加 "use strict"即可。如: "use…...
Linux的ACL(扩展权限)规划:setfacl、getfacl
目录 什么是ACL与如何支持启动ACL ACL设置技巧:getfacl、setfacl getfacl命令用法 setfacl命令用法 最简单的【u:账号:权限】设置 使用默认权限设置目录未来文件的ACL权限继承 什么是ACL与如何支持启动ACL ACL是Access Control List的…...
HTML预格式化文本pre标签
文章目录参考white-spaceword-breakfont-family参考 https://blog.csdn.net/weixin_44368963/article/details/120054949 https://www.zhangxinxu.com/wordpress/2017/03/css-font-family-chinese-english/ pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留…...
基于机器学习的心脏病预测方法(11)——梯度提升机(GBM)
一、梯度提升机介绍 GBM(Gradient Boosting Machine)算法是Boosting(提升)算法的一种。主要思想是,串行地生成多个弱学习器,每个弱学习器的目标是拟合先前累加模型的损失函数的负梯度, 使加上该弱学习器后的累积模型损失往负梯度的方向减少。 且它用不同的权重将基学习器…...
Linux多版本python切换以及多版本pip对应 (cloud studio Ubuntu16.04)
linux && cloud studio && Ubuntu16.04 简单解决多版本python切换以及多版本pip对应问题 1.python2切换成python 多版本python: 更改前先查看版本号 $ python -V Python 2.7.12 $ python2 -V Python 2.7.12 $ python3 -V Python 3.5.2 通过下面的命令看到py…...
【并发编程】LockSupport源码详解
目录 一、前言 1.1 简介 1.2 为什么说LockSupport是Java并发的基石? 二、LockSupport的用途 2.1 LockSupport的主要方法 2.2 使用案例 2.3 总结 三、LockSupport 源码分析 3.1 学习原理前的前置知识 3.1.1 Unsafe.park()和Unsafe.unpark() 3.1.2wait和notify/notify…...
元宇宙之声:新鸿基公司
在本期节目中,新鸿基团队讲述了他们在农历新年季中展示的元宇宙最新创作! 为什么将体验命名为「乘风启航」?什么是 「Scallywag」? 香港专业离岸帆船队新鸿基 Scallywag 队由新鸿基公司赞助,其团队精神与公司的精神相呼…...
Linux中定时监控Tomcat服务器进程并在进程结束时重启Tomcat服务器
目录一、问题二、解决方法1、创建定时任务文件2、修改Tomcat的部分文件3、添加系统的定时调度4、执行monitor.sh文件5、查看脚本执行的日志文件一、问题 当我们的Tomcat配置完成后投入使用后,在用户使用一定时间后,Tomcat可能会出现一些问题导致进程结束…...
快速部署私有云笔记,免费享受多端同步
一、老Q笔记之一路坎坷 市面上的笔记软件非常多,有些是本地编辑功能特别强大但是不支持云同步,有些是支持上云但是编辑功能不够完善。选择一款合适的云笔记软件,无疑能让我们工、学习的时候更加顺心、顺手。 这么多年来老Q使用过很多云笔记…...
python生成 2048位随机质数 Miller-Rabin质数测试算法
Miller-Rabin质数测试算法是一种基于随机化的算法,用于判断一个数是否为质数。该算法具有高效性和强健性,通常被用于加密算法中生成大素数。 该算法基于以下两个事实:对于质数ppp和任意整数aaa,有ap−1≡1(modp)a^{p-1} \equiv 1…...
♡ — MySQL 查询缓存
MySQL 查询缓存 执行查询语句的时候,会先查询缓存。MySQL 8.0 版本后移除,因为这个功能不太实用。 my.cnf 加入以下配置,重启 MySQL 开启查询缓存: query_cache_type1 query_cache_size600000MySQL 执行以下命令也可以开启查询缓…...
死锁检测组件 -- 使用hook检测死锁
目录 hook hook是什么 dlsym()函数 hook的实现步骤 加入hook的demo C/CLinux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂 hook hook可以把系统或第三方库提供的函数,替换成我们写的同名函数。会调用我们实现的函数。 hook是什么 hook提供了两…...
第2集丨Java中的数据类型汇总
目录一、数据类型分类二、基本数据类型取值范围数据类型的转换byte和char的关系三、包装类一、数据类型分类 二、基本数据类型 取值范围 比特(bit位) : 数据运算得最小存储单位字节(byte) : 数据最小存储单位bit和byte可以互相转换得,1 byte 8 bit位默认情况下&am…...
【基础篇】7 # 队列:队列在线程池等有限资源池中的应用
说明 【数据结构与算法之美】专栏学习笔记 什么是队列? 队列是一种操作受限的线性表数据结构,特点是先进先出,最基本的操作有:入队 enqueue(),放一个数据到队列尾部;出队 dequeue(),从队列头…...
matlab进行双目标定获取双目参数并打印教程
文章目录前言1.打开matlab进行双目标定2.获取想要的参数前言 在相同的标定算法和标定参数下,Python和Matlab的标定精度是相同的。因为标定精度主要取决于标定算法和标定参数的质量,而不是编程语言的选择。 不同的编程语言可能使用不同的库或实现细节&…...
JVM类加载机制
回到2018年的抖音哈哈. 回顾下: java开发环境: java编译运行过程: 1) 编译期:.java源文件,经过编译,生成.class字节码文件 2) 运行期:JVM加载.class并运行.class(0和1) 特点: 跨平台、一次编程,处处报错 名词解释: 1…...
8.1 优化概述
数据库性能取决于数据库级别的几个因素,例如表、查询和配置设置。这些软件结构导致了硬件级别的 CPU 和 I/O 操作,您必须将其最小化并尽可能提高效率。在研究数据库性能时,首先要学习软件端的高级规则和准则,然后使用墙上的时钟时…...
从0到1一步一步玩转openEuler--14 openEuler DNF(YUM)配置管理
文章目录14.1 DNF配置文件14.1.1 配置main部分14.1.2 配置repository部分14.1.3 显示当前配置14.2 创建本地软件源仓库14.3 添加、启用和禁用软件源14.3.1 添加软件源14.3.2 禁用软件源14.3.3 启用软件源DNF是一款Linux软件包管理工具,用于管理RPM软件包。DNF可以查…...
leetcode707 设计链表 带有输入和输出的
题目: 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节…...
100种思维模型之非sr思维模型-012
什么是sr? sr是stimulus-response的缩写,意思是刺激反应。 那么非sr思维模型就是非刺激反应思维模型的意思。 今天我们来聊聊非sr思维模型——一个提醒我们思考,提醒我们任何时刻都有选择权的思维模型。 本文依然从三个方面进行介绍,何谓…...
科学图表数值提取:用WebPlotDigitizer实现研究数据还原与学术图表解析
科学图表数值提取:用WebPlotDigitizer实现研究数据还原与学术图表解析 【免费下载链接】WebPlotDigitizer WebPlotDigitizer: 一个基于 Web 的工具,用于从图形图像中提取数值数据,支持 XY、极地、三角图和地图。 项目地址: https://gitcode…...
从一份清洗报告,看共享单车数据如何‘说话’:以厦门市为例的出行模式洞察
解码共享单车数据:厦门市民出行行为的商业洞察 清晨7点的厦门街头,一位上班族扫开共享单车,骑行1.2公里到达地铁站;傍晚6点,游客沿着环岛路悠闲骑行3公里欣赏日落。这些看似独立的出行片段,当汇聚成百万量级…...
告别虚拟机!在Windows 11上零配置搭建Masm汇编实验环境(保姆级图文教程)
在Windows 11上零配置搭建Masm汇编实验环境:从入门到实战 对于计算机专业的学生和开发者来说,汇编语言是理解计算机底层工作原理的重要工具。然而,传统的汇编环境搭建往往需要复杂的配置步骤或依赖虚拟机,这给初学者带来了不小的门…...
FlowState Lab生成对抗网络(GAN)模式探究:创造极致逼真的模拟数据
FlowState Lab生成对抗网络(GAN)模式探究:创造极致逼真的模拟数据 1. 引言:当AI学会"造假" 想象一下,你面前有两组数据:一组来自真实世界的传感器采集,另一组由AI生成。它们看起来几…...
SDMatte提示词(Prompt)高级使用技巧:引导模型优化抠图边缘
SDMatte提示词(Prompt)高级使用技巧:引导模型优化抠图边缘 1. 为什么提示词对抠图质量至关重要 你可能已经发现,同样的图片在不同提示词下,SDMatte生成的蒙版质量会有明显差异。这就像给修图师不同的工作指令——说&…...
华为OD面试-Java、C++、Pyhton等多语言实现-目录
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:华为OD面试 文章目录一、🍀2023A卷二、🍀2023B卷一、…...
PCB画板时的层数设置
在PCB设计领域,当我们说“几层板”的时候,指的就是电气层的数量(也就是导电的铜箔层数)。助焊层、阻焊层、丝印层、钻孔图这些,虽然也叫“层”,但它们是非电气层(或称辅助层)&#x…...
实战指南:如何用Python绘制强化学习中的Reward曲线(无阴影版)
1. 强化学习Reward曲线的作用与意义 在强化学习训练过程中,Reward曲线就像是我们观察模型学习进度的"晴雨表"。每次训练时,智能体通过与环境互动获得奖励值,这些数据点连起来就形成了Reward曲线。我刚开始接触强化学习时࿰…...
微信小程序毕业设计基于微信小程序的郑大强上门做菜预定服务平台
前言 随着人们生活水平的提高和生活节奏的加快,便捷、高品质的餐饮服务需求日益增长。郑大强上门做菜预定服务应运而生,旨在为客户提供更加个性化、高品质的餐饮体验。然而,传统的预定方式存在信息不透明、沟通不便、订单管理混乱等问题。为了…...
让知识传递更顺畅:在线教学课堂APP的功能设计
当学习不再局限于固定的教室和黑板,知识便有了更多抵达的方式。在线教学课堂APP正是这样一种载体,它将师生之间的互动延伸到线上,让学习随时随地在舒适的氛围中发生。以下从使用体验的角度,介绍其核心功能版块的设计思路。课程大厅…...
