JavaScript-ECMA5严格模式,以及JavaScript-ECMA5严格模式新增数组方法
严格模式:
除了正常运行模式,ECMAscript 5添加了第二种运行模式:“严格模式” 这种模式使得JavaScript在更严格的条件下运行。
严格模式的目的:
1.消除JavaScript语法的一些不合理,不严谨之处,减少一些怪异的行为;
2.消除代码运行的一些不安全之处,保证代码的运行安全
3.提高编译器效率,增加运行速度
4。为未来新版本的JavaScript做好铺垫
注:严格模式体现了JavaScript更安全,更合理,更严谨的发展方向,包括IE 10在内的主流浏览器,都支持它
严格模式的使用:
写在那个作用域下,在那个作用域下生效。
“use strict”
注:尽量注意不要将严格模式写在全局
用了严格模式,会有什么变量
1.全局变量声明时,必须加var
2.this 无法指向全局对象;
3.函数内重名属性 声明形参不能出现同命名的现象
3 例:
function show( num1 , num1,num2){"use strict";alert(num1+","+num2);}show(10,20,30);
如果不加"use strict"; 会输出 20,30;
4…arguments对象不允许被改变 ps:arguments只保存原本的数
function show(){num1 ="hello";
alert(num1+" "+num2);结果为 hello 20
alert(arguments[0]+" "+arguments[1]) 结果为 hello 20
}
how(10,20); 加上"use strict";
function show(){"use strict";
num1 ="hello";
alert(num1+" "+num2);结果为 hello 20
alert(arguments[0]+" "+arguments[1])结果为 10 20
5.新增保留字:implements interface let package private protected public static yield
JavaScript-ECMA5严格模式新增数组方法
1.indexOf()
格式:数组.indexOf(item,start);
参数:item 任意的数据
start 下标 可以不传 默认为0
功能:在数组中查找第一次出现item 元素下标 ,从start开始去查找
返回值;-1 没有查找到
>=0 查到的元素的下标
var arr = [10,23,51,65,23,51];
var index = arr.indexOf(51,3);
alert(index);
2.数组遍历
for循环
for… in
forEach(ECMA5新增)
var arr =[10,23,42,42,122,44];
arr.forEach(function( item,index,arr){/*item 当前遍历到的元素index 当前遍历到的元素下标arr 数组本身document.write(item +" "+ index +" "+arr+"<br/>");})
结果:
10 0 10,23,42,42,122,44
23 1 10,23,42,42,122,44
42 2 10,23,42,42,122,44
42 3 10,23,42,42,122,44
122 4 10,23,42,42,122,44
44 5 10,23,42,42,122,44
3.map 映射
var arr =[10,20,30,40]var newArr =arr.map(function(item,index,arr){//遍历要做的事,映射关系,不改变原数组return item*1.3;}) alert(newArr);//新的数组是原数组每个的1.3倍
4. folter() 过滤
var arr =[10,20,30,40]var newArr =arr.folter(function(item,index,arr){//过滤条件return item>20;}) alert(newArr);//新的数组是原数组所有大于20的元素
5,some 某些 在数组中查找是否有item的元素 有则返回ture 没有则false
短路操作:只要找到复合条件的元素,后面的循环就停止了
var arr =[10,20,30,40]
var res =arr.some(function(item,index,arr){//过滤条件return item>20;}) alert(res);//返回ture
6. every 每一个
注:在数组中每一个元素是否都复合条件,符合返回true 没有返回false
短路操作:只要找到不符合条件的元素,后面的循环就停止了
var arr =[10,20,30,40]var res =arr.every(function(item,index,arr){//过滤条件return item<50;}) alert(res);//返回ture
7.reduce 归并
prev:第一次是,下标为0的元素
第二次开始 上一层遍历return的值
next:从下标1开始,当前遍历到的元素
index 当前遍历到的元素下标
arr 数组本身
JavaScript-ECMA5严格模式,以及JavaScript-ECMA5严格模式新增数组方法相关推荐
- Web前端JavaScript笔记(7)ECMA6新增数组方法
新增数组方法: 1. Array.from(): 将伪数组转化为真数组 <script>window.onload = function () {let tag_li = documen ...
- 用JavaScript实现的设计模式之commandline(命令行)模式
使用Commandline设计模式之前的源代码: <html> <script>// Priority: ActiveX > HTML5 > Flash > ...
- JavaScript学习(七十二)—严格模式
JavaScript学习(七十二)-严格模式 JavaScript除了提供正常模式外,还提供了严格模式,ES5的严格模式是采用具有限制性JavaScript变体的一种方式,即在严格条件下运行JS代码, ...
- [译] JavaScript 的函数式编程是一种反模式
本文讲的是[译] JavaScript 的函数式编程是一种反模式, 原文地址:Functional programming in JavaScript is an antipattern 原文作者:A ...
- IE6,7,8开发人员工具使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)
在上一篇文章IE8"开发人员工具"使用详解上(各级菜单详解) 中,我们详细地讲解了IE8开发人员工具中各个菜单中命令的使用方法,相信很多朋友应该已经使用上了.而IE8开发人员工具更 ...
- 【JavaScript设计模式张容铭】抽象工厂模式深度剖析——关于继承与constructor属性的深度理解
写在前面 最近阅读了张容铭的<JavaScript设计模式>一书,阅读到抽象工厂模式一节时对书上的代码产生了疑问,但同时在解决疑问的过程中,对继承又产生了新的理解. 我仔细查阅了很多文章, ...
- JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式
JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...
- JavaScript 设计模式学习第九篇- 抽象工厂模式
工厂模式 (Factory Pattern),根据输入的不同返回不同类的实例,一般用来创建同一类对象.工厂方式的主要思想是将对象的创建与对象的实现分离. 抽象工厂 (Abstract Factory) ...
- JavaScript 23 种设计模式之 4 抽象工厂模式
JavaScript 23 种设计模式之 4 抽象工厂模式 概念与特点 结构与实现 应用场景 应用实例 总结 概念与特点 概念: 提供一组相关或相互依赖对象的接口.抽象工厂模式是工厂方法模式的升级版, ...
最新文章
- 【文本分类】Deep Pyramid Convolutional Neural Networks for Text Categorization
- 【数据平台】python语言NLP库Gensim初识
- vue cli 项目在打包时候报错 API fatal error handler returned after process out of memory
- 检查单 2015-05-15-01
- 二十不惑,三十而已|网易互联网人的“焦虑必杀技”
- 字节输入流_InputStream类FileInputStream类介绍
- UML 面向对象分析与设计
- 算法训练营 重编码_编码训练营适合您吗?
- 0基础lua学习(二十)Lua单例
- Linux 技巧: 从命令行创建像素标尺
- C# 连接 Sqlserver2005 Analysis Service的总结
- python 泰坦尼克号存活率分析
- [Vue CLI 3] 环境变量和模式配置实践与源码分析
- 高通滤波器的电压传递函数_一次弄懂低通、高通、带通、带阻、状态可调滤波器!...
- Simply Fortran 保姆级教程
- 【STM32H7教程】第39章 STM32H7的DMAMUX基础知识(重要)
- Fedora 安装 QQ音乐
- 「职称」2022年度中高级职称线下申报材料组卷要求(下)
- IDEMIA任命Astrid Warren为首席人力官
- Android 面试题(有详细答案)