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 ...
随机推荐
- php和js一起实现倒计时功能
里获取的php服务端的时间 纯JS是获取客服端时间! <?php //php的时间是以秒算.js的时间以毫秒算 date_default_timezone_set('PRC'); //date_ ...
- 单例模式中的多线程分析synchronized
谈到单例模式,我们立马会想到饿汉式和懒汉式加载,所谓饿汉式就是在创建类时就创建好了实例,懒汉式在获取实例时才去创建实例,即延迟加载. 饿汉式: 1 package com.bijian.study; ...
- Storm Bolt接口
Bolt是Topology中数据处理的基本单元,也是Storm针对处理过程的编程单元.Topology中所有的处理都是在这些bolt中完成的. Bolt可以将数据项发送至多个数据流(Str ...
- ECSHOP通过改变模板路径制作手机站
ECSHOP通过改变模板路径制作手机站 前提:不使用ECSHOP自带的mobile目录程序来制作手机站. 目的:手机站做成自动识别,通过改变模板路径来显示PC站或手机站. 待续
- 4. read命令
4.1 作用 从标准输入中读取一行. 4.2 参数 -p 允许在read命令行中直接指定一个提示. -t 给用户的输入作限时规定. -n 规定read后变量所接收的字符的个数. -s 使得read命令 ...
- apache 配置https
1.生成密钥# openssl genrsa 1024 > server.key这是用128位rsa算法生成密钥,并保存到server.key文件 2.生成证书请求文件# openssl req ...
- XE6移动开发环境搭建之IOS篇(9):配置XE6的IOS SDK(有图有真相)
网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 1.开启PAServ ...
- 查看.NET Service Pack版本
原文地址:如何确定已安装的 Microsoft .NET Framework 版本和 Service Pack 级别 使用以下注册表信息确定已安装的 Microsoft .NET Framework ...
- Flex中使用CSS控制页面样式
Using file: Stylebounding.mxml Stylebounding2.mxml myCSS0329.css 在Flex4中使用CSS控制样式,既可以直接在MXML文件中写样式,也 ...
- UnixBench测试
安装: 1. UnixBench from version 5.1 on has both system and graphics tests. If you want to use the g ...