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 ...
随机推荐
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 单例模式中的多线程分析synchronized
谈到单例模式,我们立马会想到饿汉式和懒汉式加载,所谓饿汉式就是在创建类时就创建好了实例,懒汉式在获取实例时才去创建实例,即延迟加载. 饿汉式: 1 package com.bijian.study; ...
- 关于华为x2中的外置SDCard的使用
一.前要 记录一下最近在开发生产过程中遇到的一个小问题.在使用x2的华为7寸平板时,由于需要大内存去录制视频,所以就使用X2自带的SDCard口,插入1个128G的SDCard卡.但是Android ...
- C++中引用的本质
一般的教材上讲到引用时,都是说"引用是对象的一个别名".我认为这种定义是不清晰的,不利于初学者理解引用.至少我自己曾经被这个定义困扰了一段时间.到底什么是"别名" ...
- Laravel 校验规则之字段值唯一性校验
版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] laravel validator unique 'name' => 'required|unique:test,disp ...
- do-while语句
一.语句格式格式1:do 语句1;while (条件表达式); 格式2:do { 语句1; 语句2; -}while (条件表达式); 语句执行过程:1.执行一遍循环体.2.求出作为循环条件的 ...
- Graph单元
感谢世外苏子恒同学提供 一.调用单元 例:uses graph; 二.初始化 例:initgraph(var graphdriver,graphmode:integer; const path ...
- httpd的警告
1. httpd: apr_sockaddr_info_get() failed for serv05 这个是因为httpd.conf文件没有定义ServerName,所以会用hostname来代替, ...
- 68. Longest Common Prefix
Longest Common Prefix Write a function to find the longest common prefix string amongst an array of ...
- Extjs 4.2 Grid增删改及后台交互(Java)
上次发了Easyui Datagrid的增删改查的使用学习记录后一直想整理下基于Extjs4.2的Grid学习使用记录.苦于抽不出时间,一直拖到现在.不得不说,Extjs确实很强大,新版的Neptun ...