那些逐步掌握的JavaScript('use strict')

JavaScript严格模式的未知特性
本文介绍了JavaScript严格模式下的四个不为人知的特性:在'usestrict'前不可写varb,不允许有8进制数,eval、arguments成为关键字,以及eval变成独立作用域。并解释了这些特性的具体表现及影响。

早已习惯在use strict模式下编写JavaScript代码,也知道它的一些约束,特性。今日在看视频时竟收获了几个原来不曾知道的特性。

 

    首先科普下JavaScript的严格模式。

慕课网《JavaScript深入浅出》作者写道
严格模式是一种特殊的执行模式,
它修复了部分语言上的不足,
提供更强的错误检查,并增强安全性。

   

严格模式可使用在某个函数内部,也可使用在整个脚本中。开启严格模式的语法为‘use strict’。

  

function foo(){
  'use strict';
}

 

 

'use strict';
function foo(){
}

 介绍就到这,如还未使用的伙伴可自行搜索:JavaScript  严格模式

 

一.use strict前不可写var b;

我知道在定义'use strict'前仍可写代码(即无需写在代码的第一行),但不知道在'use strict'前输入

var a;

类似代码,则不行。

 

二.use strict下,不允许有8进制数。

function foo(){
'use strict';
console.log(0321);
}

 以上代码,则会报错。Uncaught SyntaxError: Octal literals are not allowed in strict mode.

 

三.use strict下,eval、arguments成了关键字,不能作为变量函数名。

function f(){
  'use strict';
  function eval(){
   console.log(eval);
  }
}

 以上代码,依旧会报错。Uncaught SyntaxError: Unexpected eval or arguments in strict mode

 

四.use strict下,eval变成了独立作用域

!function(){
 "use strict";
  eval('var evalVal=2;’);  
   console.log(typeof evalVal);   //number
}();

 在一般模式下,在eval所在的函数内可得到evalVal,则会打印number;在 严格模式下eval中的代码会在独立作用域中执行,所以在外面evalVal则拿不到。即为undefined。

 

 

以上便是今日通过慕课网视频中学习而得。其外严格模式下还有很多限制,约束特性。如Bosn老师在PPT中写道的:

Bosn老师的PPT内容 写道
不允许用with

所有变量必须声明, 赋值给为声明的变量报错,而不是隐式创建全局变量。

eval中的代码不能创建eval所在作用域下的变量、函数。而是为eval单独创建一个作用域,并在eval返回时丢弃。

函数中得特殊对象arguments是静态副本,而不像非严格模式那样,修改arguments或修改参数变量会相互影响。

删除configurable=false的属性时报错,而不是忽略

禁止八进制字面量,如010 (八进制的8)

eval, arguments变为关键字,不可作为变量名、函数名等

一般函数调用时(不是对象的方法调用,也不使用apply/call/bind等修改this)this指向null,而不是全局对象。

若使用apply/call,当传入null或undefined时,this将指向null或undefined,而不是全局对象。

试图修改不可写属性(writable=false),在不可扩展的对象上添加属性时报TypeError,而不是忽略。

arguments.caller, arguments.callee被禁用

 其中一些早已用熟,此处便未贴上代码解释。

 

 

  最后,严格模式的向上兼容的。 

 

【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理与优化策略”展开研究,重点利用深度Q网络(DQN)等深度强化学习算法对微能源网中的能量调度进行建模与优化,旨在应对可再生能源出力波动、负荷变化及运行成本等问题。文中结合Python代码实现,构建了包含光伏、储能、负荷等元素的微能源网模型,通过强化学习智能体动态决策能量分配策略,实现经济性、稳定性和能效的多重优化目标,并可能与其他优化算法进行对比分析以验证有效性。研究属于电力系统与人工智能交叉领域,具有较强的工程应用背景和学术参考价值。; 适合人群:具备一定Python编程基础和机器学习基础知识,从事电力系统、能源互联网、智能优化等相关方向的研究生、科研人员及工程技术人员。; 使用场景及目标:①学习如何将深度强化学习应用于微能源网的能量管理;②掌握DQN等算法在实际能源系统调度中的建模与实现方法;③为相关课题研究或项目开发提供代码参考和技术思路。; 阅读建议:建议读者结合提供的Python代码进行实践操作,理解环境建模、状态空间、动作空间及奖励函数的设计逻辑,同时可扩展学习其他强化学习算法在能源系统中的应用。
皮肤烧伤识别作为医学与智能技术交叉的前沿课题,近年来在深度学习方法推动下取得了显著进展。该技术体系借助卷积神经网络等先进模型,实现了对烧伤区域特征的高效提取与分类判别,为临床诊疗决策提供了重要参考依据。本研究项目系统整合了算法设计、数据处理及模型部署等关键环节,形成了一套完整的可操作性方案。 在技术实现层面,首先需要构建具有代表性的烧伤图像数据库,涵盖不同损伤程度及愈合阶段的临床样本。通过对原始图像进行标准化校正、对比度增强等预处理操作,有效提升后续特征学习的稳定性。网络架构设计需充分考虑皮肤病变的区域特性,通过多层卷积与池化操作的组合,逐步抽象出具有判别力的烧伤特征表示。 模型优化过程中采用自适应学习率调整策略,结合交叉熵损失函数与梯度下降算法,确保参数收敛的稳定性。为防止过拟合现象,引入数据扩增技术与正则化约束,增强模型的泛化能力。性能验证阶段采用精确率、召回率等多维度指标,在独立测试集上全面评估模型对不同烧伤类型的识别效能。 经过充分验证的识别系统可集成至医疗诊断平台,通过规范化接口实现与现有医疗设备的无缝对接。实际部署前需进行多中心临床验证,确保系统在不同操作环境下的稳定表现。该技术方案的实施将显著缩短烧伤评估时间,为临床医师提供客观量化的辅助诊断依据,进而优化治疗方案制定流程。 本项目的突出特点在于将理论研究与工程实践有机结合,既包含前沿的深度学习算法探索,又提供了完整的产业化实施路径。通过模块化的设计思路,使得医疗专业人员能够快速掌握核心技术方法,推动智能诊断技术在烧伤外科领域的实际应用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值