从零开始学习前端JAVASCRIPT — 5JavaScript基础ES5

Posted 大仲马

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始学习前端JAVASCRIPT — 5JavaScript基础ES5相关的知识,希望对你有一定的参考价值。

1:ES5简介

ECMAScript 5.1 (或仅 ES5) 是ECMAScript(基于javascript的规范)标准的修正。 与html5规范进程本质类似,ES5通过对现有JavaScript方法添加语句和原生ECMAScript对象做合并实现标准化。

2:严格模式的意义

  相对于正常模式而言:

1:消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为。

2:消除代码运行的一些不安全之处,保证代码运行的安全。

3:提高编译器效率,增加运行速度。

4:为未来新版本的Javascript做好铺垫。

"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。

3:进入严格模式

进入“严格模式”的标志,书写这行语句:"use strict";

老版本的浏览器会把它当作一行普通字符串,加以忽略。

4:如何调用严格模式

"严格模式"有两种调用方法,适用于不同的场合。

针对整个脚本文件:将"use strict"放在脚本文件的第一行,则整个脚本都将以"严格模式"运行。如果这行语句不在第一行,则无效,整个脚本以"正常模式"运行。如果不同模式的代码文件合并成一个文件,这一点需要特别注意。

针对单个函数:将"use strict"放在函数的第一行,则整个函数以"严格模式"运行。

脚本文件的变通写法:因为第一种调用方法不利于文件合并,所以更好的做法是,借用第二种方法,将整个脚本文件放在一个立即执行的匿名函数之中。

eg:

// a.js (组员a的js代码引入严格模式)
/*	‘use strict‘;
	var a = 4;
	var b = 3;
	console.log(a + b);*/
// b.js(组员b的js代码引入正常模式)
/*
	var c = 6;
	var d = 7;
	console.log(c + d);*/
//项目上线代码合并(如果直接合并代码,组员b的代未按照严格模式规范来coding,语法可能发生各种问题)。
//解决方案:将代码分别封装进入两个匿名自执行函数
(function () {
	‘use strict‘;
	var a = 4;
	var b = 3;
	console.log(a + b);
})();
(function () {
	var c = 6;
	var d = 7;
	console.log(c + d);
})();

5:严格模式改变语法和行为

严格模式对Javascript的语法和行为,都做了一些改变。

1:全局变量显式声明。

在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须显式声明。因此,严格模式下,变量都必须先用var命令声明,然后再使用。

javascrip中的变量讲解中函数内部不加关键字var定义的全局变量如果引入严格模式,运行程序将会检查出语法错误。采用显示声明全局变量。

2:函数形参不允许重复。

3:禁止使用with语句。

4:禁止函数内部this关键字指向全局对象,this指向undefined。

5:函数必须声明在顶层。

将来Javascript的新版本会引入“块级作用域"。为了与新版本接轨,严格模式只允许在全局作用域或函数作用域的顶层声明函数。也就是说,不允许在非函数的代码块内声明函数。

// if(1){function a(){}} else {function a() {}}

以上是关于从零开始学习前端JAVASCRIPT — 5JavaScript基础ES5的主要内容,如果未能解决你的问题,请参考以下文章

从零开始学习前端JAVASCRIPT — 1JavaScript基础

从零开始学习前端JAVASCRIPT — 6JavaScript基础DOM

从零开始学习前端JAVASCRIPT — 7JavaScript基础EVENT

从零开始学习前端JAVASCRIPT — 5JavaScript基础ES5

从零开始学习前端JAVASCRIPT — 3JavaScript基础string字符串介绍

从零开始学习前端JAVASCRIPT — 14闭包与继承