javascript 中break、 continue、函数不能重载
在javascript中,break与continue有着显著的差别。
如果遇到break语句,会终止最内层循环,无论后面还有多少计算。
如果遇到continue,只会终止此次循环,后面的自循环依然执行。
var num = ;
for (var k = ; k < ; k++) {
for (var i = ; i < ; i++) {
for (var j = ; j < ; j++) {
if (i === && j === ) {
break;
}
num++;
}
}
}
console.log(num);
此时 num=3*3-3*2=21
如果换成continue,则 num=3*3-3*1=24;
看看换成标签会出现什么情况呢,情况代码:
var num = ;
comeouter:
for (var k = ; k < ; k++) {
for (var i = ; i < ; i++) {
for (var j = ; j < ; j++) {
if (i === && j === ) {
break comeouter;
}
num++;
}
}
}
console.log(num);
由于是break,因此,一旦i===1&j===1,则立刻退出全部循环,因此 num=4;
如果是continue,则只保留最外层的循环,里层循环不在执行,因此 num=3*4=12;
(二)
在面向对象的语言中, 根据函数的参数类型与参数的个数不同,我们可以对函数进行重载; 但是Javascript中没有函数重载的说法。
如果定义两个javascript函数,解析器只会解析写在最底端的那个函数。
function testA(num1, num2) {
console.log(num1+'-'+num2);
};
function testA(num1) {
console.log(num1);
};
testA(, );
运行的结果是 15。
也许会觉的奇怪,我传入了两个参数,调用的是只有一个参数的函数,为什么不报错呢?
这是因为在Javascript中,解析器不管传过来的参数的个数以及类型的,有多少调多少。
所有的参数其实都是放在一个叫做 arguments 里的,这类似于一个数组,可以存储不同类型的数据,看下面的代码。
function testA() {
console.log(arguments[]+'--'+arguments[]);
};
testA(, );
输出结果是15--18。
(三)
关于’==‘与’====‘的区别
请看下面
console.log(true==1) 输出true
console.log(true===1) 输出false
(四)
任何与NaN 进行操作,输出的结果都是Nan,比如NaN + 1。
这里比较好玩的是NaN==NaN 输出 false,
但null==null true 。
null ==undefined ture,实质上undefined是null的子类.
null 值其实一个空对象指针,因此 typeof null 返回的是一个object。
javascript 中break、 continue、函数不能重载的更多相关文章
- 借助JavaScript中的时间函数改变Html中Table边框的颜色
借助JavaScript中的时间函数改变Html中Table边框的颜色 <html> <head> <meta http-equiv="Content-Type ...
- 前端学习 第二弹: JavaScript中的一些函数与对象(1)
前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...
- 理解和使用 JavaScript 中的回调函数
理解和使用 JavaScript 中的回调函数 标签: 回调函数指针js 2014-11-25 01:20 11506人阅读 评论(4) 收藏 举报 分类: JavaScript(4) 目录( ...
- JavaScript中变量和函数声明的提升
现象: 1.在JavaScript中变量和函数的声明会提升到最顶部执行. 2.函数的提升高于变量的提升. 3.函数内部如果用var声明了相同名称的外部变量,函数将不再向上寻找. 4.匿名函数不会提升. ...
- javascript中使用md5函数
javascript中使用md5函数 这对于js来讲本来是没有的,现在可以自己定义一个md5的函数,达到加密效果. var hexcase = 0; function hex_md5(a) { if ...
- 在 JavaScript 中使用构造器函数模拟类
今天,我们要讲的是在 JavaScript 中使用构造器函数(construcor function)模拟类. 构造器函数简介 你可以使用 ES6 的 class 关键字来实现类,不过我建议你使用传统 ...
- 来一轮带注释的demo,彻底搞懂javascript中的replace函数
javascript这门语言一直就像一位带着面纱的美女,总是看不清,摸不透,一直专注服务器端,也从来没有特别重视过,直到最近几年,javascript越来越重要,越来越通用.最近和前端走的比较近,借此 ...
- 理解javascript中的回调函数(callback)【转】
在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实 ...
- JavaScript 中的回调函数
原文:http://javascriptissexy.com/ 翻译:http://blog.csdn.net/luoweifu/article/details/41466537 [建议阅读原文,以下 ...
- JavaScript中字符串分割函数split用法实例
这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...
随机推荐
- CentOS 7 php留言本网站的搭建
一如既往的先搭建yum仓库 并且安装httpd服务 yum install httpd -y 1:改网页的搭建是基于html搭建 查询是否安装该协议 rpm -qa |grep httpd 2:留言板 ...
- jQuery使用load方法加载其他文档内容
A文档载入B文档的内容,并且通过JQ操作被引入到A文档中的元素 A文档 (index.html): <!DOCTYPE html> <html lang="en" ...
- 使用springMVC实现文件上传和下载之文件下载
接上一篇,文件下载需要获取下载文件的存储路径,这里只是手动填入,如果是在具体项目中,可以把文件名和上传后的存储路径保存在数据库中.然后增加一个文件列表的页面展示文件名和文件路径,然后点击下载的时候把相 ...
- angular.js ngbind nghtml ngTemplate
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- view坐标_ _ Android应用坐标系统全面详解
转:http://blog.csdn.net/yanbober/article/details/50419117 1 背景 去年有很多人私信告诉我让说说自定义控件,其实通观网络上的很多博客都在讲各种自 ...
- Redirecting Console.WriteLine() to Textbox
I'm building this application in Visual Studio 2010 using C#. Basically there are 2 files, form1.cs ...
- XE6移动开发环境搭建之IOS篇(6):设置Mac OSX的网络。(有图有真相)
网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 我们配置一下MAC的 ...
- POJ C Looooops
Description A Compiler Mystery: We are given a C-language style for loop of type for (variable = A; ...
- Windows下配置nginx根目录的问题
location / { root E:/xampp/htdocs/html5/php/yii2-rest-master/rest/web; index index.html index.htm; } ...
- DataGridView控件的各种操作总结
一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index ...