JavaScript 几种循环方式以及模块化的总结


Posted in Javascript onSeptember 03, 2020

小小最近学习到了js的几种循环方式,对这几种循环方式进行总结。以及对模块化的相关知识点进行总结,

循环方式

循环方式分为好几种循环方式,分别是for循环,forEach循环,map循环,for..in循环,for…of循环,jquery的循环。

小小将会依次对这几种循环方式进行介绍。

一般数组遍历循环

这里使用常用的数组遍历方式。

一般来说,常用的数组遍历如下

for (var index = 0; index < myArray.length; index++) {
 console.log(myArray[index]);
}

这样就完成了常规的循环遍历。

在es5以后,添加了forEach,通过forEach进行循环遍历

myArray.forEach(function (value) {
 console.log(value);
});

这里通过forEach函数,完成对数组的遍历。

缺点: 这样使用有个致命的缺点,不能中断循环,即,不能使用break和return

for-in 循环遍历

for-in循环是为专有对象进行设置的,如下

var obj = {a:1, b:2, c:3};

循环结果如下

for (var prop in obj) {
 console.log("obj." + prop + " = " + obj[prop]);
}

// 输出:
// "obj.a = 1"
// "obj.b = 2"
// "obj.c = 3"

循环一个数组的时候,使用如下的方式进行循环。

for (var index in myArray) {  // 不推荐这样
 console.log(myArray[index]);
}

for-of 循环

数组

for-of循环可以遍历数组等内容

let iterable = [10, 20, 30];

for (let value of iterable) {
 console.log(value);
}
// 10
// 20
// 30

此时完成了对数组的遍历。

字符串

此时还可以遍历一个字符串

let iterable = "boo";

for (let value of iterable) {
 console.log(value);
}
// "b"
// "o"
// "o"

循环一个Map

还可以循环一个Map

let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);

for (let [key, value] of iterable) {
 console.log(value);
}
// 1
// 2
// 3

for (let entry of iterable) {
 console.log(entry);
}
// [a, 1]
// [b, 2]
// [c, 3]

循环一个set

还可以循环一个set

let iterable = new Set([1, 1, 2, 2, 3, 3]);

for (let value of iterable) {
 console.log(value);
}
// 1
// 2
// 3

以上是基本的循环

模块化

对js的模块化进行介绍

以前,js文件在一个文件里,使用js的模块化,可以实现对多个js文件可以进行分离,实现工程化

这里介绍最常用的es6模块化

export 与 import

这里介绍export和import这两种方式。

文件如下

/*-----export [test.js]-----*/
let myName = "Tom";
let myAge = 20;
let myfn = function(){
  return "My name is" + myName + "! I'm '" + myAge + "years old."
}
let myClass = class myClass {
  static a = "yeah!";
}
export { myName, myAge, myfn, myClass }

/*-----import [xxx.js]-----*/
import { myName, myAge, myfn, myClass } from "./test.js";
console.log(myfn());// My name is Tom! I'm 20 years old.
console.log(myAge);// 20
console.log(myName);// Tom
console.log(myClass.a );// yeah!

这里分为两个文件,分别为test.js和xxx.js test.js定义了几个变量,并导出了

myName, myAge, myfn, myClass

等,几个变量。

使用import命令,导入了一些变量,进入到命名空间,使用console.log可以进行读取

console.log(myfn());// My name is Tom! I'm 20 years old.
console.log(myAge);// 20
console.log(myName);// Tom
console.log(myClass.a );// yeah!

as

as在这里,实现重命名的方式,实现导入的时候,命名的更改。

import { myName as name1 } from "./test1.js";
import { myName as name2 } from "./test2.js";
console.log(name1);// Tom
console.log(name2);// Jerry

这些就完成了基本的导入和导出

以上就是JavaScript 几种循环方式以及模块化的总结的详细内容,更多关于JavaScript 循环方式以及模块化的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
js 小数取整的函数
May 10 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
Oct 09 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
ExtJs中gridpanel分组后组名排序实例代码
Dec 02 Javascript
Javascript页面跳转常见实现方式汇总
Nov 28 Javascript
js获取html的span标签的值方法(超简单)
Jul 26 Javascript
JS基于对象的特性实现去除数组中重复项功能详解
Nov 17 Javascript
关于Vue在ie10下空白页的debug小结
May 02 Javascript
vue多次循环操作示例
Feb 08 Javascript
详解JavaScript作用域和作用域链
Mar 19 Javascript
JavaScript实现横版菜单栏
Mar 17 Javascript
Vuejs通过拖动改变元素宽度实现自适应
Sep 02 #Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
Sep 02 #Javascript
Vue 组件的挂载与父子组件的传值实例
Sep 02 #Javascript
vue中的.$mount('#app')手动挂载操作
Sep 02 #Javascript
vue中提示$index is not defined错误的解决方式
Sep 02 #Javascript
解决vue组件没显示,没起作用,没报错,但该显示的组件没显示问题
Sep 02 #Javascript
vue或react项目生产环境去掉console.log的操作
Sep 02 #Javascript
You might like
《PHP编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
2016/03/07 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP实现数据四舍五入的方法小结【4种方法】
2019/03/27 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
禁用页面部分JavaScript方法的具体实现
2013/07/31 Javascript
ie8本地图片上传预览示例代码
2014/01/12 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
2015/01/28 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
在Html中使用Requirejs进行模块化开发实例详解
2016/04/15 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
JS获取本周周一,周末及获取任意时间的周一周末功能示例
2017/02/09 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
使用jQuery给Table动态增加行、清空table的方法
2018/09/05 jQuery
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
[03:01]完美世界DOTA2联赛PWL S2 集锦第二期
2020/12/03 DOTA
使用Python进行新浪微博的mid和url互相转换实例(10进制和62进制互算)
2014/04/25 Python
Python函数可变参数定义及其参数传递方式实例详解
2015/05/25 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
实例详解Python模块decimal
2019/06/26 Python
python实现画出e指数函数的图像
2019/11/21 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Python super()方法原理详解
2020/03/31 Python
CAT鞋美国官网:CAT Footwear
2017/11/27 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
任课老师推荐信范文
2013/11/24 职场文书
大学生蛋糕店创业计划书
2014/01/13 职场文书
创业融资计划书
2014/04/25 职场文书
通信工程求职信
2014/07/16 职场文书
党课心得体会范文
2014/09/09 职场文书
离职证明范本
2015/06/12 职场文书
2016年小学生清明节广播稿
2015/12/17 职场文书
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers