js严格模式总结

首页,我们要理解严格模式的概念,严格模式是一种特殊的执行模式,它修复了部分语言上的不足,提供更强的错误检查,病增强安全性。可以对部分函数进行执行严格模式,如:

function func(){

‘use strict‘

}

也可以对整个js文件进行执行严格模式,如:

‘use strict‘

function func(){

}

那么我们在以下情况不能使用:

1、不允许用width

2、不允许未声明的变量被赋值

3、arguments变为参数的静态副本

4、delete参数、函数名报错

5、delete不可配置的属性报错

6、对象字面量重复属性名报错

7、禁止八进制字面量

8、eval,arguments变为关键字,不能作为变量、函数名

9、eval独立作用域

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

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

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

arguments.caller,arguments.callee被禁用

时间: 2024-08-18 22:13:02

js严格模式总结的相关文章

JS命名空间模式解析

简介 在SF上看到这样一个提问: 如题,因为不得已的原因,需要写若干个全局函数.但又不想这样: window.a = function(){} window.b = function(){} window.c = function(){} 题主问有什么好的写法? 解答: 如果你用 jQuery,你可以这样写 $.extend(window, { a: function() {}, b: function() {}, c: function() {} }); 如果你不用 jQuery,可以直接实现

js继承模式

组合继承是js常用的继承模式,指的是将原型链和借用构造函数的技术结合在一起.其中的思想是使用原型链实现原型属性和方法的继承, 而通过借用构造函数实现对属性的继承. 例子: <script> function SuperType(name){ this.name = name; this.colors = ["red","blue"]; } SuperType.prototype.sayName = function(){ alert(this.name)

JS严格模式

如何开启严格模式? 在js中,只需要在顶部添加"use strict",即可进入严格模式 在函数中加上"use strict"编辑指示,也可以指定函数在严格模式下执行, 如 function dosomething(){ "use strict" //函数体 }

JS 组合模式

/** * 组合模式应用的场景和特点: * 场景: * 1 存在一批组织成某种层次体系的对象 * 2 希望对这批对象或其中的一部分对象实施一个操作 * * 应用特点: * 1 组合模式中只有两种类型对象:组合对象.叶子对象 * 2 这两种类型都实现同一批接口 * 3 一般我们会在组合对象中调用其方法并隐式调用"下级对象"的方法(这里我们一般采用递归的形式去做) * */ /* * 场景模拟: * -> 公司 * -> 北京分公司 * -> 财务部门 * -> 张

JS 单体模式

<!-- ————————JS设计模式 单体模式——————— --> //1.简单单体模式 var Singleton={ attr1:true, attr2:10, method1:function(){ alert("方法一"); }, method2:function(){ alert("方法二"); } }; //单体模式 划分命名空间(区分代码) var XL={};//创建自己的命名空间 XL.Singleton2={ attr1:true

js策略模式

策略模式定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到使用算法的客户. 先上C#版本: namespace 策略模式 { //现金收取父类 abstract class CashSuper { //抽象方法:收取现金,参数为原价,返回为当前价 public abstract double acceptCash(double money); } } namespace 策略模式 { //正常收费,继承CashSuper class CashNormal : Ca

js状态模式

状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来是改变了其类. 状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况.把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化. 既然状态者模式是对已有对象的状态进行抽象,则自然就有抽象状态者类和具体状态者类,而原来已有对象需要保存抽象状态者类的引用,通过调用抽象状态者的行为来改变已有对象的行为.经过上面的分析,状态者模式的结构图也就很容易理解了,具体结构图如下图示. 从上图可知,状态者模式涉及

如何做JS 单体模式的设计----&gt;&gt;js设计模式&lt;&lt;-------单体模式

1. 单体模式是js中最基本 单最有用的模式之一,非常常用. 单体模式的基本结构如下: var Person = { name: 'lilu', age:'20', sayHi: function(){ alert('456456'); }, sayBye: function(){ alert('456456'); } } 这个栗子中,所有的成员都可以通过Person进行访问,用点运算符就行. 如: Person.name = "zczc"; Person.age = "10

Node.js 异步模式浅析

注:此文是node.js实战读后的总结. 在平常的脚本语言中都是同步进行的,比如php,服务器处理多个请求的方法就是并行这些脚本.多任务处理,多线程等等.但是这种处理方式也有一个问题:每一个进程或者线程都会耗费大量的系统资源.如果有一种方法可以最大化的利用CPU的计算能力和可用内存以减少资源浪费那就极好了.这样,我们的node.js就应运而生了. 上一个node.js最简单的异步编程案例: 1 var fs = require('fs'); 2 3 var file; 4 5 fs.open(