严格模式下的违规行为列表
在外壳中运行adb logcat我看到了类似的东西 StrictMode policy violation; ~duration=337 ms: android.os.StrictMode$StrictModeDiskReadViolation: policy=23 violation=2 策略= 23的意思是什么? 什么是违规= 2? 我正在寻找该值的含义,但我找不到任何文档 违反白人和政策清单,或者我以不好的方式解释了我的搜索结果,但我将感谢您对此的一些解释 解决方案 策略= 23是什么意思? 您可以配置strictmode以通知您某些事情,并且可以告诉它如何获得通知(简单的日志消息,异常,...).请参阅策略是一种在内部跟踪该配置的位.由于它是在10111中解释它更直观的掩码.然后,您可以在BlockGuard.java源文件中查找相关位.这是public static final int DISALLOW_DISK_WRITE = 0x01;
0 2024-02-04
编程技术问答社区
babel-loader。模块构建失败。SyntaxError: 在严格模式下删除了局部变量
我正在使用webpack in webpack使用自定义的babel-plugin将一些第三方代码转换为一种毫无麻烦地通过WebPack的捆绑包的格式.但是,当我的代码通过Babel的解析器(巴比伦)构建AST时,我会收到以下错误: Module build failed: SyntaxError: Deleting local variable in strict mode 我在Baseon中找到了触发此消息的线路: https://github.com/babel/babylon/blob/master/src/parser/expression.js#l236 查看该代码,似乎我应该能够通过将this.state.strict设置为false来禁用严格的模式.问题是我不知道如何从babel-loader设置this.state.strict.我希望别人对此有更多的了解. 这是我到目前为止尝试过的一些事情: strict: false和strictMod
0 2023-12-01
编程技术问答社区
如何在使用 webpack 捆绑 React 时禁用严格模式
你好,我陷入了我的应用程序,我的应用程序在所有其他浏览器中都可以正常工作. 0x800a0416 - JavaScript runtime error: Multiple definitions of a property not allowed in strict mode 我已经在webpack.config 中实现了加载程序 module: { loaders: [{ test: /\.js?$/, exclude: /(node_modules|bower_components)/, loaders: ['babel'], include: path.join(__dirname, 'scripts') }] } 和我的软件包脚本包含"build": "./node_modules/.bin/webpack --config webpack.config.production.js
4 2023-12-01
编程技术问答社区
在 "useState "函数中出现了意想不到的状态更新结果
考虑使用函数来更新useState对象的函数: App.tsx import { useState } from 'react'; export default function App() { const [state, setState] = useState({ id: 0, }); const update = () => { setState(prev => { const id = Date.now(); console.log('previous id:', prev.id, 'new id:', id); return { id, }; }); }; return ( state: {JSON.stringify(state)}
0 2023-11-11
编程技术问答社区
React DnD:避免使用 findDOMNode
我不完全理解它,但显然我正在尝试创建拖放组件,但我不确定如何从组件变量访问参考.这是我目前拥有的一个示例: const cardTarget = { hover(props, monitor, component) { ... // Determine rectangle on screen const hoverBoundingRect = findDOMNode(component).getBoundingClientRect(); ... } } 编辑 这可能是由于我的组件既是拖放源和目标既是我可以在这个示例但不是这个. 解决方案 假设您使用的是ES6类语法和最新版本的React(15,在写作时),您可以像Dan在您共享的链接上一样附上回调ref.来自 docs : 当在HTML元素上使用REF属性时,Ref回调将接收基础DOM元素作为其参数.例如,此代码使用参考回调存储对
8 2023-07-28
编程技术问答社区
Function.prototype.call改变了typeof this,在严格模式之外;为什么?
var example = function () { console.log(typeof this); return this; }; 在严格模式下:example.call('test') # prints 'string' 否则,example.call('test') # prints 'object' 但是,console.log(example.call('test'))打印test(如您所期望的) 为什么Function.call更改typeof 'test' === 'string'绑定到this example? 解决方案 使用call()并将this参数设置为原始值时,原始值总是转换为对象的,因此您可以获得字符串对象而不是原始字符串 String {0: "t", 1: "e", 2: "s", 3: "t", length: 4, ... call()的文档上强> mdn 指出 thisarg this为呼叫
20 2023-06-09
编程技术问答社区
我应该禁用MySQL严格模式吗?
我一直在启用MySQL严格模式的站点上工作.一个人有一个长长的用户代理字符串,该字符串已记录在我们的日志表中,不幸的是,用户代理字符串超过了列的限制,因此引起了警告.数据根本没有插入. 要避免这种麻烦,我应该禁用MySQL严格模式还是应该自己想出一些东西(我正在使用PHP)? 解决方案 在将数据插入数据库之前验证数据.如果字符串太大而无法放入桌子中,则列太窄,或数据无效.您需要在存储之前确定是否将其截断,进行一些错误报告或两者. do 不关闭DBM的安全功能,这是完全错误的事情. 其他解决方案 您是否希望将数据静止地截断(可能导致数据损坏),或者您至少想知道您有问题吗? 我建议启用严格的模式并在PHP中检查您的数据.您的PHP应用程序知道,或者至少应该知道如何处理太长的字符串.如果您关闭严格的模式并将该决定留给MySQL,则MySQL会默默地截断您的字符串,您最终会出现一个充满垃圾的数据库. 更改和修复代码很容易,修复损坏的数据通常是不可能的.
22 2023-05-26
编程技术问答社区
为什么在Opera中(0 || eval)不被视为间接的?
在严格的模式下,间接调用eval应具有this绑定到est code中的全局对象的this. 10.4.2:在第5版中,间接呼叫对评估函数使用全局环境作为可变环境和词汇环境的评估代码.在第3版中,间接评估呼叫者的变量和词汇环境被用作评估代码的环境. 但是,在歌剧中,此表达式在undefined中导致: (function(){'use strict'; return (0 || eval)('this'); }()) Chrome和Firefox如预期的工作. 我在这里找到了:这是浏览器错误吗?如果是这样,它是否正在跟踪? 另请参见为什么间接评估的形式在Opera和Safari中失败? 解决方案 Opera的Ecmascript Engine似乎在这里进行了一些过度急躁的优化,其中"(0 || eval)"被简化为在编译之前仅" eval".在这种情况下,此优化引入了一个错误,因为它更改了代码的行为. (在Opera上,我们将此问题跟踪为C
22 2023-05-11
编程技术问答社区
为什么严格模式会使如此简单的行动变得如此不同?
有一个极其简单的算法,在两种情况下,它的作用令人惊讶,具体取决于"use strict"的存在. 案例1 : 如果func()声明在严格的模式下,而不是控制台logs 原始 "use strict"; // strict mode is on Object.prototype.func = function() { return this; } // do nothing with the object console.log( (4).func() ); // 4; primitive 案例2 : 如果func()声明不在严格的模式之外,而不是控制台logs 相同值的对象 // strict mode is off Object.prototype.func = function() { return this; } // do nothing with the object "use strict"; console.log( (4).fun
30 2023-04-26
编程技术问答社区
如何在严格模式下获得函数名称[正确的方法]
arguments.callee arguments.callee arguments.callee 不幸它在"严格模式"中引发错误. 是否有任何新的正确(标准)替代方案可以在实际功能中获取功能名称? 还是将来计划ECMA6,7? 最近的答案对我的回答. and arguments.callee.caller.name无法工作(nodejs v7.5.0) 解决方案 是否有任何新的正确(标准)替代方案可以在实际功能中获取功能名称? 不,没有. 或将来的ES计划? 否,鉴于不需要它.在当前函数中,您知道名称,并且可以同时使用字符串文字,在其他函数中,您只需要一些参考(而不是.callee). 其他解决方案 如果您使用node.js,则有一个有用的软件包用于此问题:>呼叫者-ID var callerId = require('caller-id'); function foo() { bar(); } functio
2 2023-04-24
编程技术问答社区
从Drools调用重载方法: `无法使用严格模式解决方法问题`。
我是Java和Drools的新手,我必须构建Java Restful Web服务/规则引擎.我们已经有Genesys规则创作(GRAT)和Genesys Rule Engine(GRE)(8.1.2版),他们运行Drools 5.2版.我们需要采用Grat套件的来源,并将其用于我们的开发环境中的"精简规则引擎".对于我的POC,我已经安装了流口水5.2,并创建一个可以像我想要的那样消化我的包裹和射击规则的项目.但是对于某些软件包,我有这种错误: BuildError: Unable to Analyse Expression $routingparams.priority = obtenirValeurParametre($routingparams.priority,"100"); $routingparams.target1 = obtenirValeurParametre($routingparams.target1, "AVGRP_GPAP_AEP_TA_MDP_E");:
16 2023-04-18
编程技术问答社区
如何找到并禁用MySQL严格模式?
大家好,我想为WHMC找到这个严格模式并禁用它,但我没有进步 我是新手,如果我没有提及其他事情 谁能帮我? 我正在研究WHM/CPANEL 解决方案 关闭(或ON)MySQL严格从CPANEL访问. 1,在搜索框中搜索" phpmyadmin",单击它 2,一旦加载了phpmyadmin,请单击"变量"选项卡 3,搜索'SQL模式' 然后 在Enter上转动严格模式 STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION 要关闭严格模式,请输入 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 如果您对脚本有控制权,那么请继续使用严格的模式,这是一个好主意,它会在代码中的任何错误中提醒您成为问题的任何错误. 其他解决方案 我目前使用MariadB和多个CANEL配置运行CentOS 6.9服务器,因此对于客户而言,他们无法自行严格禁用而不会遇到许可错误.这就
58 2023-04-16
编程技术问答社区
这个arguments.callee实例的严格模式替代方案
有一个旧的技巧(我在So so so 上都学会了)抓住了将构造函数称为函数,即忘记new关键字.以下或类似的内容在顶部的每个构造函数中都存在. if (!(this instanceof arguments.callee)) { throw Error("Constructor called as a function"); } 当您需要"use strict";> 时,有什么选择 可以保留其通用性吗?还是我们必须使用构造函数代替arguments.callee? 解决方案 arguments.callee本身被弃用以支持命名函数表达式.尽管我不一定同意这一举动,但这就是事情的进展.因此,用函数名称替换arguments.callee是严格模式下的唯一方法,也是非图案模式下的首选方式.
30 2023-03-30
编程技术问答社区
JavaScript中两个同名的函数--这怎么可能?
据我所知,function foo() { aaa(); }在JavaScript中只是var foo = function(){ aaa() }.因此,添加function foo() { bbb(); }应该覆盖foo变量,或忽略第二个定义 - 这不是重点.关键是应该有一个变量foo. 因此,在此示例中,me变量应从方法内部正确解决 ,并且它不在Explorer 8: - )中.我试图将它们包裹在另一个闭合(var)me的情况下来到这个示例,但是我很惊讶这不是必需的: var foo = { bar1 : function me() { var index = 1; alert(me); }, bar2 : function me() { var index = 2; alert(me); }
64 2023-03-15
编程技术问答社区
为什么我的JavaScript在Safari的严格模式下不能正常工作?
我构建了一个使用一些简单JavaScript的网站.经过一番测试,我发现与我可以测试的所有其他设备相比,我的JavaScript在iOS设备上的行为非常不同. . 经过几个小时的反复试验,我发现出乎意料的行为仅在严格的模式下发生,但是很难进一步解决问题,因为我在苹果开发和苹果开发的软件/硬件中受到限制测试. 为什么我的代码不能在严格的模式下工作,只有一定的(尤其是苹果)设备? 解决方案 可能的问题 您的问题可能是您已经启用了严格模式的声明const声明. 可能的解决方案 如果是这种情况,并且您想继续使用严格的模式,一个解决方案是使用var而不是const,然后更小心地将变量视为常数. 有关此问题的更多信息 实际上,没有OS X计算机,很难调试此问题,因为您无法使用iOS Safari的远程控制台" Web Inspector". 然而,根据Caniuse ,对于Safari和ios Safari的当前版本9.3分别在写作时)const
60 2023-01-19
编程技术问答社区
我应该';使用严格的#39;对于我编写的每一个javascript函数?
我应该为我写的每个JavaScript函数"严格使用"? 在大型AngularJS项目中使用严格的习惯是什么?全球使用它可以打破不支持它的第三方库,但是每次都"使用严格"只是重复的. 解决方案 在这个问题上,要提防过度简化的一般趋势. 首先,您的所有代码绝对应该在严格的模式下运行.更改了核心现代JavaScript功能(请参见 silent )通过在严格模式之外执行代码. (更多有关此 shere ,来自克罗克福德.) 但是,这并不能解决 您应确保您的代码在严格的模式下运行.至少有两种情况需要考虑: 在浏览器中,您的代码应在更新后交付.如果您在每个功能主体中都包含'use strict',则您的微型仪不会剥离它,并且您会浪费多个在各处重复它.您只需要在模块定义顶部的最外面函数范围中.一种方法是将您的缩小代码包裹在单个IIFE关闭中,作为构建过程的一部分: ;(function (){ 'use strict' // All code her
22 2023-01-14
编程技术问答社区
如何从严格模式获取调用方?
可以混合严格和非图案代码.但是,即使调用呼叫不在严格的代码中,也无法使用呼叫者.有人知道任何解决方法吗? 我尝试了: (function strict(){ "use strict"; nonStrict();//ok nonStrictCaller();//error :( })(); function nonStrict(){ return 011;//Octal literals are not allowed in strict mode } function nonStrictCaller(){ return nonStrictCaller.caller; } 解决方案 这是一个仅在V8中起作用的邪恶黑客. 140 bytes版本: function x(a,b,c){function d(e,f){d=f}c=(b=Error)[a='prepareStackTrace'];b.captureStackTra
24 2023-01-13
编程技术问答社区