启用严格模式式怎样调时间的

&&国之画&&布布分享&&&& &&&&
版权所有 京ICP备号-2
迷上了代码!js中的 use strict 做了什么使用严格模式有什么优点
看到github上很多代码里面用到"use strict";这句话。
查了一些资料只知道是ECMAScript5的新特性,有人翻译为严格模式,不加这一句话就很不严格吗?
有没有大神能详细的讲一下它的作用,严格模式会称为未来的标准模式吗?
js作为一门一开始用于浏览器的脚本语言,容错性很好。所以有时候代码写得再丑再乱七八糟,也可以运行的。
而"use strict"开启严格模式以后,一些js糟糕的特性都会被禁用,比如不能用with,也不能在意外的情况下给全局变量赋值。严格模式下的eval函数的行为和非严格模式的也不相同。具体题主可以去查阅一下严格模式到底限制了多少内容。
另外需要注意的是,严格模式虽然看似美好,但使用上也需要注意,推荐看下:"use strict"; 的正确使用
“use strict”是一个指令,指示解释器用更严格的方式检查代码。
我在自己的blog中写了一篇关于javascript 严格模式的总结。基本上涵盖了所有的内容,你可以参考下 有问题可以交流.:
> 本站内容系网友提交或本网编辑转载,其目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除内容!
创建一个String 对象,语法:new String(stringValue),这个调用会将参数转换为字符串,并作为一个String 对象.事实上任何一个字符串常量都是一个String对象,可以将其直接作为对象来使用,这和使用new String()创建对象的区别是:typeof的返回值不同,一个是&stirng&,另一个是& ...
&%response.setCharacterEncoding(&utf-8&); response.setHeader(&iso-8859-1&,&utf-8&); request.setCharacterEncoding(&utf-8&); String name
代码取自于underscore.js 1.8.3的isEqual函数. 做了一些小小的修改,主要是Function的比较修改. 自己也加了一些代码解读. &!DOCTYPE html& &html lang=&en&& &head& &meta charset=&UTF-8&& ...
聊一下JS中的作用域scope和闭包closure scope和closure是javascript中两个非常关键的概念,前者JS用多了还比较好理解,closure就不一样了.我就被这个概念困扰了很久,无论看别人如何解释,就是不通.不过理越辩越明,代码写的多了,小程序测试的多了,再回过头看看别人写的帖子,也就渐渐明白了闭包的含义了.咱不是啥大牛,所以不搞的那 ...
Node.js Manual & Documentation Table Of Contents Synopsis 概要Global Objects 全局对象 globalprocessrequire()require.resolve()require.paths__filename__dirnamemodule Timers 定时器 setTime ...
今天研究js跨域问题的时候发现一篇好博,非常详细地讲解了js几种跨域方法的原理,特分享一下. 原博地址:/2050/p/3191744.html 下面正文开始 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数 ...
JS中的闭包(closure) 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现.下面就是我的学习笔记,对于Javascript初学者应该是很有用的. 一.什么是闭包 JS中,在函数内部可以读取函数外部的变量 function outer(){ var localVal = 30; return loca ...
这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对/dir/page.html同源检测的结果: 要解决跨域的问题,我们可以使用以下 ...一般平时的少量测试代码, 我习惯直接在的DEV中调试, 一般的调试都没有问题, 但难免一些小概率事件, 比如调试严格模式下的代码(关于严格模式,mark在这里??), 这时候如果直接在console里输入"use strict"是无效的,比如如下代码在console里正常输出:
'use strict'
console.log(i) //正常输出10 ,但是严格模式下这是不合法的,因为i没有申明
据说是因为在console中的js代码是通过eval()来执行的。解决方法是有,只是比较麻烦, 因为严格模式不仅可以针对整个脚本("use strict"写在脚本第一行),也可以只针对函数(放在函数体的第一行)
于是在Chrome中可以这样:
(function()
'use strict';
console.log(i) //报错Uncaught ReferenceError: a is not defined(…)
这样写的话console才会正确报错,这种写法确实比较麻烦, 说到这里不得不提下的开发工具, 它的代码草稿纸简直是里的调试神器(Shift+F4), 不仅简单直观,而且也具备了一般的功能, 无奈用习惯了chrome的DEV,firefox我一般用得很少(但感觉firebug作为工具感觉真的业界良心)。如果哪位同学还知道什么轻量简单的调试工具(直接打开就能用的!),还麻烦告诉下我。
以下是firefox的代码草稿纸:3321人阅读
Hive(84)
hive严格模式&
& & & & &hive提供了一个严格模式,可以防止用户执行那些可能产生意想不到的不好的效果的查询。即某些查询在严格
模式下无法执行。通过设置hive.mapred.mode的值为strict,可以禁止3中类型的查询。
1)带有分区的表的查询
& & & & 如果在一个分区表执行hive,除非where语句中包含分区字段过滤条件来显示数据范围,否则不允许执行。换句话说,
就是用户不允许扫描所有的分区。进行这个限制的原因是,通常分区表都拥有非常大的数据集,而且数据增加迅速。
& & & &如果没有进行分区限制的查询可能会消耗令人不可接受的巨大资源来处理这个表:
& & & &hive& SELECT DISTINCT(planner_id) FROM fracture_ins WHERE planner_id=5;
& & & &FAILED: Error in semantic analysis: No Partition Predicate Found for Alias &fracture_ins& Table &fracture_ins
& & & &如下这个语句在where语句中增加了一个分区过滤条件(也就是限制了表分区):
& & & &hive& SELECT DISTINCT(planner_id) FROM fracture_ins
& & & && WHERE planner_id=5 AND hit_date=;
& & & &... normal results ...
&2)带有orderby的查询
& & & & &对于使用了orderby的查询,要求必须有limit语句。因为orderby为了执行排序过程会讲所有的结果分发到同一个reducer中
& 进行处理,强烈要求用户增加这个limit语句可以防止reducer额外执行很长一段时间:
hive& SELECT * FROM fracture_ins WHERE hit_date&2012 ORDER BY planner_
FAILED: Error in semantic analysis: line 1:56 In strict mode,
limit must be specified if ORDER BY is present planner_id
& & & & 只需要增加limit语句就可以解决这个问题:
hive& SELECT * FROM fracture_ins WHERE hit_date&2012 ORDER BY planner_id
& & & & & LIMIT 100000;
& & & & ... normal results ...
& 3)限制笛卡尔积的查询
& & & & &对关系型数据库非常了解的用户可能期望在执行join查询的时候不使用on语句而是使用where语句,这样关系数据库的执行
& 优化器就可以高效的将where语句转换成那个on语句。不幸的是,hive不会执行这种优化,因此,如果表足够大,那么这个查询就会
& 出现不可控的情况:
& hive& SELECT * FROM fracture_act JOIN fracture_ads
& WHERE fracture_act.planner_id = fracture_ads.planner_
FAILED: Error in semantic analysis: In strict mode, cartesian product
is not allowed. If you really want to perform the operation,
+set hive.mapred.mode=nonstrict+
& & & & 下面这个才是正确的使用join和on语句的查询:
hive& SELECT * FROM fracture_act JOIN fracture_ads
& & & & & ON (fracture_act.planner_id = fracture_ads.planner_id);
& & & & ... normal results ...
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:553290次
积分:6794
积分:6794
排名:第2126名
原创:126篇
转载:321篇
评论:46条
(4)(30)(2)(1)(1)(3)(7)(10)(4)(3)(4)(4)(16)(12)(5)(3)(3)(5)(3)(3)(24)(6)(12)(42)(13)(71)(86)(27)(3)(1)(6)(15)(1)(1)(3)(1)(1)(2)如何开启mysql中的严格模式_【联盟电脑】
您现在的位置: >
如何开启mysql中的严格模式
联盟电脑很多集成的PHP环境(PHPnow WAMP Appserv等)自带的MySQL貌似都没有开启MySQL的严格模式,何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符串类型的数据,在非严格模式下MySQL不会报错,同样如果定义了char或varchar类型的字段,当写入或更新的数据超过了定义的长度也不会报错。我认为这个对于编程来说没有任何好处,虽然我们尽量在代码中做数据校验。MySQL开启了严格模式从一定程序上来讲是对我们代码的一种测试,如果我们的开发环境没有开启严格模式在开发过程中也没有遇到错误,那么在上线或代码移植的时候将有可能出现不兼容的情况,因此在开发过程做最好开启MySQL的严格模式。如何开启?1.可以通过执行SQL语句来开启,但是只对当前连接有效,下面是SQL语句: 代码如下:set sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";2.通过修改MySQL的配置文件,在配置文件中查找sql-mode,将此行修改成为: 代码如下:sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"如果查找不到sql-mode=则在[mysqld]下加入即可,推荐第二种方法,可以一劳永逸。
(责任编辑:联盟电脑)
更多相关资讯
联盟电脑 事件类型: 错误 事件来源: Service Control Manager 事件种类: 无 事件 ID: 7034 日期:.....
【联盟电脑】部分内容自于互联网,其言论不代表本站观点,若本站侵犯到您的版权,请与站长联系,我们将在第一时间核实并删除!
版权所有 & 【联盟电脑】 | 专注分享有价值、实用的电脑技术和知识
Copyright &
All rights reserved. 京ICP备号

我要回帖

更多关于 mysql严格模式 的文章

 

随机推荐