当前位置: 首页 > news >正文

JavaScript 严格模式

JavaScript 严格模式是一种在 JavaScript 编程中使用的特殊模式。它提供了一种更严格的语法和错误检查,以帮助开发者编写更可靠、更安全的代码。

使用严格模式的方法是在代码文件或函数的顶部添加如下语句:

"use strict";

作用:

  • 消除 Javascript 语法的一些不合理、不严谨之处,减少一些怪异行为;

  • 消除代码运行的一些不安全之处,保证代码运行的安全;

  • 提高编译器效率,增加运行速度;

  • 为未来新版本的 Javascript 做好铺垫。

 他有两种使用方法:

1.在全局中使用:

"use strict";
myFunction();function myFunction() {y = 3.14;   // 报错 (y 未定义)
}

 2.在函数内部声明是局部作用域 (只在函数内使用严格模式):

x = 3.14;       // 不报错
myFunction();function myFunction() {"use strict";y = 3.14;   // 报错 (y 未定义)
}

严格模式的限制:

不允许使用未声明的变量

"use strict";
x = 3.14;                // 报错 (x 未定义)
//对象也是一个变量
"use strict";
x = {p1:10, p2:20};      // 报错 (x 未定义)

不允许删除变量,对象和函数。

"use strict";
var x = 3.14;
delete x;                // 报错
"use strict";
function x(p1, p2) {};
delete x;                // 报错 

不允许变量重名

"use strict";
function x(p1, p1) {};   // 报错

禁止this关键字指向全局对象。

 function a() {console.log(this);}//返回Window对象function b() {"use strict";console.log(this);}//undefined

因此,使用构造函数时,如果忘了加new,this不再指向全局对象,而是报错。

保留关键字

为了向将来Javascript的新版本过渡,严格模式新增了一些保留关键字:

  • implements
  • interface
  • let
  • package
  • private
  • protected
  • public
  • static
  • yield
http://www.lryc.cn/news/191121.html

相关文章:

  • 安全与隐私:直播购物App开发中的重要考虑因素
  • Redis cluster 集群
  • 服务器与网站部署知识体系目录
  • 解读提示工程(Prompt Engineering)
  • Servlet的部署与安全
  • 2023版IDEA的下载、安装、配置、快捷键、模板、插件与使用
  • vue cli和vite区别
  • SQL Server修改表结构
  • C++学习——对象的内存模型
  • cpp文件操作
  • failed to req API:/nacos/v1/ns/instance after all servers([localhost:8848])
  • 【ROS】ros-noetic和anaconda联合使用
  • 【MySQL】聚合查询与分组查询
  • RFID技术在锂电池生产线自动化应用
  • 钢筋智能测径仪 光圆与带肋钢筋均可检测!
  • docker--在Anaconda jupyter 容器中使用oracle数据源时,Oracle客户端安装配置及使用示例
  • can的波特率/比特率
  • 项目经理涨薪秘籍!技巧都在这里了
  • 甘特图组件DHTMLX Gantt示例 - 如何有效管理团队工作时间?(一)
  • 健效达海豚妈妈儿保项目推介会盛大启幕,聚焦互联网+精准医疗
  • 使用XLua在Unity中获取lua全局变量和函数
  • springboot项目集成kafka,并创建kafka生成消息线程池
  • PreScan与MATLAB联合仿真报错
  • ros学习笔记(1)Mac本地安装虚拟机,安装Ros2环境
  • 史上最强,Jmeter性能测试-性能场景设计实例(详全)
  • 【vim 学习系列文章 7-- vim vnormap nnoremap nmap map inoremap 区别】
  • [ERROR] COLLATION ‘utf8_unicode_ci‘ is not valid for CHARACTER SET ‘latin1‘
  • 基于rancher安装部署k8s
  • 保姆级微服务部署教程
  • springboot 定时任务