JavaScript跳出循环的三种方法(break, return, continue)


Posted in Javascript onJuly 30, 2019

前言:

一位前端界的大神让我去思考的一个问题, 给了Big-man一段代码,如下:

function Seriously(options) {
  // if called without 'new', make a new object and return that
  if(window === this || !(this instanceof Seriously) || this.id !== undefined) {
    return new Seriously(options);
  }
}

return语句执行之后还会继续执行吗?这是大神上来让我解决的问题,既然提到了return那我也就随带解决JS中另外的两种结束循环的方法break, continue。

Break语句:

  • break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。
  • 由于它是用来退出循环或者switch语句的, 所以只有当它出现在这些语句的时候, 这种形式的break语句才是合法的。
  • 如果一个循环的终止条件非常复杂, 那么使用break语句来实现某些条件比用一个循环表达式所有的条件容易得多。
for(var i = 519; i < 550; i++) {
  if(i == 522) {
    break;
  }
  console.log(i);
  alert(i);
  document.write(i);
}
  • 当i = 521的时候,直接退出for这个循环。这个循环将不再被执行。
  • 对于输出结果的话,可以自己去测试的吧。

Continue语句:

  • continue语句和break语句相似。所不同的是,它不是退出一个循环,而是开始循环的一次新迭代。
  • continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内, 在其他地方使用都会引起错误?
for(var i = 5; i >=0; i--) {
  if(i == 4 || i == 3 || i == 1) {
    continue;
  }
  console.log(i);
  alert(i);
  document.write(i);
}
  • 当i = 4、i = 3以及i = 1的时候,直接跳出for循环。下次继续执行。
  • 至于输出结果,还希望大家去打印一下。

Return语句:

return语句就是用于指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方造成语法错误!

for(var i = 1; i < 10; i++) {
  if(i == 8) {
    return;
  }
  console.log(i);
  alert(i);
  document.write(i);
}

执行结果Uncaught SyntaxError: illegal return statement(...)

  • 错误意思是非法捕获的查询返回语句。

当执行return语句时, 即使函数主题中还有其他语句, 函数执行也会停止!

<script type="text/javascript">
  if(username == "") {
    alert("please input your username: ");
    return false;
  } else if (qq == "") {
    alert("please input your qq number: ");
    return false;
  }
</script>

上面的实例里,当username为空时,就不会再向下执行,在一些表单提交中,也可以通过return false来阻止默认的提交方式,改用Ajax的提交方式,例如:

<form id="form" onSubmit="return false">
...
</form>

this对应的全局变量:

window == this这个Boolean等式,在不同的情况下的展现都不一样的。

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>

<body>
<script type="text/javascript">
  function a() {
    console.log(window === this)
  }
  a();
</script>
</body>
</html>

这个时候的window === this打印出来的是true,这也就意味着this绝对等于window。

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>

<body>
<script type="text/javascript">
  'use strict'
  function a() {
    console.log(window === this)
  }
  a();
</script>
</body>
</html>

这个时候window === this返回回来的值却是false, 而且打印出来的this是undefined的。

所以严格模式下面的代码操作需要更加的规范和合理才可以的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 Javascript
深入Javascript函数、递归与闭包(执行环境、变量对象与作用域链)使用详解
May 08 Javascript
Jquery网页出现的乱码问题的三种解决方法
Jun 30 Javascript
express的中间件bodyParser详解
Dec 04 Javascript
使用javascript提交form表单方法汇总
Jun 25 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
Dec 16 Javascript
jQuery实现多级联动下拉列表查询框
Jan 18 Javascript
JS调用打印机功能简单示例
Nov 28 Javascript
jQuery插件FusionWidgets实现的Cylinder图效果示例【附demo源码】
Mar 23 jQuery
认识jQuery的Promise的具体使用方法
Oct 10 jQuery
如何在 Vue 表单中处理图片
Jan 26 Vue.js
8个有意思的JavaScript面试题
Jul 30 #Javascript
开源一个微信小程序仪表盘组件过程解析
Jul 30 #Javascript
原生js添加一个或多个类名的方法分析
Jul 30 #Javascript
vue2.0项目集成Cesium的实现方法
Jul 30 #Javascript
Koa从零搭建到Api实现项目的搭建方法
Jul 30 #Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 #Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 #Javascript
You might like
学习使用curl采集curl使用方法
2012/01/11 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
Yii2框架视图(View)操作及Layout的使用方法分析
2019/05/27 PHP
js form action动态修改方法
2008/11/04 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
最佳JS代码编写的14条技巧
2011/01/09 Javascript
精通Javascript系列之数值计算
2011/06/07 Javascript
javascript时间函数基础介绍
2013/03/28 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
详解jQuery向动态生成的内容添加事件响应jQuery live()方法
2015/11/02 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
CSS3 media queries结合jQuery实现响应式导航
2016/09/30 Javascript
js实现加载更多功能实例
2016/10/27 Javascript
js判断输入框不能为空格或null值的实现方法
2018/03/02 Javascript
Vue模拟数据,实现路由进入商品详情页面的示例
2018/08/31 Javascript
Python的requests网络编程包使用教程
2016/07/11 Python
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
python画柱状图--不同颜色并显示数值的方法
2018/12/13 Python
python自动化实现登录获取图片验证码功能
2019/11/20 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
Python爬虫之Spider类用法简单介绍
2020/08/04 Python
解决pip安装的第三方包在PyCharm无法导入的问题
2020/10/15 Python
python中的yield from语法快速学习
2020/11/06 Python
上海天奕面试题笔试题
2015/04/19 面试题
2013届毕业生求职信范文
2013/11/20 职场文书
工商管理专业大学生职业生涯规划范文
2014/03/09 职场文书
元旦晚会感言
2014/03/12 职场文书
关于环保的标语
2014/06/13 职场文书
七年级地理教学计划
2015/01/22 职场文书
大学军训口号大全
2015/12/24 职场文书
MySQL 数据表操作
2022/05/04 MySQL