js判断浏览器是否支持严格模式的方法
设立"严格模式"的目的,主要有以下几个:
- 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
- 消除代码运行的一些不安全之处,保证代码运行的安全;
- 提高编译器效率,增加运行速度;
- 为未来新版本的Javascript做好铺垫。
"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。
另一方面,同样的代码,在"严格模式"中,可能会有不一样的运行结果;一些在"正常模式"下可以运行的语句,在"严格模式"下将不能运行。掌握这些内容,有助于更细致深入地理解Javascript,让你变成一个更好的程序员。
js构造函数类似于
function P (name, age) { this.name = name; this.age = age; }
使用new
操作符则返回一个新的对象,如果没有加new
操作符则函数内this
指向全局对象window,而在严格模式中则为undefined
,借此我们可以判断浏览器是否支持严格模式
var hasStrictMode = (function(){ "use strict"; return this == undefined; }())
这里介绍一个方法,可以忽略new
操作符
function P () { if (!(this instanceof P)) return new P(); }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
相关推荐
-
JavaScript严格模式禁用With语句的原因
看了很多遍JavaScript严格模式,其中有说"禁用With语句",以前看到这都是骑马观花,一带而过,因为平时就很少用到这个语句,禁不禁用对自己关系都不是很大.今天禁不住想知道为何"严格模式"就容不下with语句呢? EcmaScript规范上说"with 语句用于设置代码在特定对象中的作用域",可以看出,With语句改变了作用域链. function Person(name,age,sex){ this.name = name; this.a
-
Javascript的严格模式strict mode详细介绍
"严格模式"(strict mode)是ECMA-262 Edition 5定义的新语法,表示要用严格的Javascript语法来执行,有一些过去惯用的写法就会抛出SyntaxError异常,例如:1.变量前没有用var宣告2.使用八进制语法:var n = 023和var s = "\047"3.使用with语句4.使用delete删除一个变量名(而不是属性名):delete myVariable5.使用eval或arguments作为变量名或函数名6.使用未来保
-
JavaScript严格模式详解
一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: a - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; b - 消除代码运行的一些不安全之处,保证代码运行的安全: c - 提高编译器效率,增加运行速度: d - 为未来新版本的Javascript做好铺垫. "
-
跟我学习javascript的严格模式
一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. 设立"严格模式"的目的,主要有以下几个: 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; 消除代码运行的一些不安全之处,保证代码运行的安全: 提高编译器效率,增加运行速度: 为未来新版本的Javascript做好铺垫. "严格模式"体现了Jav
-
js严格模式总结(分享)
首页,我们要理解严格模式的概念,严格模式是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,病增强安全性.可以对部分函数进行执行严格模式,如: function func(){ 'use strict' } 也可以对整个js文件进行执行严格模式,如: 'use strict' function func(){ } 那么我们在以下情况不能使用: 1.不允许用width 2.不允许未声明的变量被赋值 3.arguments变为参数的静态副本 4.delete参数.函数名报错 5.de
-
理解javascript中的严格模式
一.什么是严格模式 我们平时写的JavaScript代码一般都运行在正常模式中的,除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).看名字就知道,这种模式会让JavaScript在更严格的环境中运行. 包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱.(github上面好多项目都是用的严格模式) 二.启用严格模式 为整个脚本启用严格模式 在所有语句之前放一个特定语句 "use strict"
-
JavaScript起点(严格模式深度了解)
严格模式(Strict Mode)是ECMAScript5新增的功能.ECMAScript5虽然可以向后兼容ECMAScript3,但如果使用严格模式,哪些ECMAScript5"不在建议使用"的ECMAScript3语法功能将会被全部进制,如果出现就会抛出一行.引入Strict Mode目的是允许开发人员能够选择"更好"的Javascript版本,这个版本能用不同的方式处理那些普遍而又臭名昭著的错误.目前所有的主流浏览器的最新版本--包括IE10与Opera12-
-
深入理解javascript严格模式(Strict Mode)
ECMAScript5中引入的严格模式,通过让JavaScript运行环境对一些开发过程中最常见和不易发现的错误做出和当前不同的处理,来让开发者拥有一个"更好"的JavaScript语言.很长一段时间内,由于只有Firefox支持严格模式,我曾对严格模式表示怀疑.但到了今天,所有主流的浏览器都在他们的最新版本中支持了严格模式(包括IE10,Opera12和Android4,IOS5)是时候开始使用严格模式了. 严格模式能起到什么作用? 严格模式为JavaScript引入了很多变化,我把
-
js判断浏览器是否支持严格模式的方法
设立"严格模式"的目的,主要有以下几个: - 消除Javascript语法的一些不合理.不严谨之处,减少一些怪异行为; - 消除代码运行的一些不安全之处,保证代码运行的安全: - 提高编译器效率,增加运行速度: - 为未来新版本的Javascript做好铺垫. "严格模式"体现了Javascript更合理.更安全.更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它. 另一方面,同样的代码,在"严格模式"中
-
JS判断浏览器是否支持某一个CSS3属性的方法
1.引子 css3的出现让浏览器的表现更加的丰富多彩,表现冲击最大的就是动画了,在日常书写动画的时候,很有必要去事先判断浏览器是否支持,尤其是在写CSS3动画库的时候.比如transition的animation-play-state,就只有部分浏览器支持. 2.检测方法 下面的方法可以使用脚本判断浏览器是否支持某一个CSS3属性: /** * 判断浏览器是否支持某一个CSS3属性 * @param {String} 属性名称 * @return {Boolean} true/false * @
-
js判断浏览器是否支持html5
现在HTML5似乎慢慢流行起来了,有些前端高手为了兼容考虑,会在网页中添加对客户端浏览器判断的代码,知道用户浏览器是否支持HTML5,下面分享想我自己使用的2种方法 方法一, <script> function checkhHtml5() { if (typeof(Worker) !== "undefined") { alert("支持HTML5"); } else { alert("不支持HTML5"); } } </scri
-
基于js判断浏览器是否支持webGL
起因是我之前开发的网页,用到了three.js制作了一个3d的旋转球体效果. 在各种浏览器上运行都没问题,在IE上也做了兼容代码. 但是今天接电话,老板说你这网页在xp上不显示啊.IE上好使.google浏览器不好使. 于是开始解决问题,不禁陷入了沉思.what?网页显示难道还与操作系统有关?google竟然不好使? 于是搭建一个xp虚拟机. 于是下载一个chorme. 惊奇的发现并不能安装最新版本的chrome. 哦?一定是xp上安装的低版本chrome而那时候的chrome还不支持webGL
-
JavaScript 判断浏览器是否支持SVG的代码
可缩放矢量图形(Scalable Vector Graphics,SVG)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式.SVG由W3C制定,是一个开放标准.另SVG还是Static Var Generator静止无功发生器的简称 判断浏览器是否支持SVG的代码(部分截去自Highcharts源码): Js代码: 复制代码 代码如下: function hasSVG(){ SVG_NS = 'http://www.w3.org/2000/svg', return !!doc.
-
JS判断浏览器是否安装flash插件的简单方法
1. 直接判断是否有flash插件 var myFlash = (function(){ if(typeof window.ActiveXObject != "undefined"){ return new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); }else{ return navigator.plugins['Shockwave Flash']; } })(); chrome: Edge浏览器中取消了wind
-
js判断浏览器版本以及浏览器内核的方法
本文实例讲述了js判断浏览器版本以及浏览器内核的方法.分享给大家供大家参考.具体实现方法如下: js判断是否移动端及浏览器内核 var browser = { versions: function() { var u = navigator.userAgent; return { trident: u.indexOf('Trident') > -1, //IE内核 presto: u.indexOf('Presto') > -1, //opera内核 webKit: u.indexOf('Ap
-
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
今天突然看到一段很好的代码,分享给大家,顺便也给自己留个笔记,js判断浏览器的环境具体如下: 方法一: // 判断浏览器函数 function isMobile(){ if(window.navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|W
-
如何基于js判断浏览器版本
这篇文章主要介绍了如何基于js判断浏览器版本,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 浏览器类型判断 不考虑对 IE9 以下浏览器的判断 function getBrowserType(){ var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var browser='unknown'; if (userAgent.indexOf("IE")!=-1) { brow
-
JS判断浏览器类型与操作系统的方法分析
本文实例讲述了JS判断浏览器类型与操作系统的方法.分享给大家供大家参考,具体如下: navigator.userAgent : userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值. navigator.platform : platform 属性是一个只读的字符串,声明了运行浏览器的操作系统和(或)硬件平台. 判断浏览器类型 IE浏览器 ie = ua.match( /MSIE\s([\d\.]+)/ ) || ua.match( /(?:trident
随机推荐
- Python图算法实例分析
- Shell中函数返回值超出问题
- javascript中数组方法汇总
- Linux下JDK安装教程
- IOS设备上给body绑定click事件不生效的原因及解决办法
- 再次谈论Javascript中的this
- js获取php变量的实现代码
- 详解ASP.NET MVC Form表单验证
- PHP 文件上传源码分析(RFC1867)
- python简单实现旋转图片的方法
- Linux下安装配置MySQL
- PHP中JSON的应用技巧
- javascript实现简单计算器效果【推荐】
- javascript中的prototype属性实例分析说明
- 总结下sqlserver group by 的用法
- jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
- 基于JQuery的模拟苹果桌面Dock效果(稳定版)
- python中cPickle用法例子分享
- C#中String StringBuilder StringBuffer类的用法
- C# 实现计算生辰八字