JavaScript(2):函数
<!DOCTYPE html>
<html>
<body>
<p>JavaScript 函数</p>
<script>
// 函数声明
function myFunction(a, b) { return a * b;}
console.log(myFunction(2, 6));
// 函数表达式(匿名函数)
var demo1 = function(a, b) {return a * b;};
console.log(demo1(2, 5));
// Function()构造函数 [F大写!]
var demo2 = new Function("a", "b", "return a * b");
console.log(demo2(2, 4));
// 自调用函数(匿名自我调用的函数) [添加两对括号!]
(function() {
console.log("Call myself.");
})(); // 函数是对象
// 使用 typeof 操作符判断函数类型将返回 "function"
console.log(typeof demo1 == 'function');
// toString() 方法将函数作为一个字符串返回
console.log(demo1.toString()); // Arguments对象
// [例1]获取最大值
function myMax() {
var i, max = arguments[0];
if(arguments.length < 2) return max;
for(i = 1; i < arguments.length; i++){
if(arguments[i] > max) max = arguments[i];
}
return max;
}
console.log(myMax(1, 3, 9, 5, 7));
// [例2]统计所有数值的和
function mySum() {
var i, sum = 0;
for(i = 0; i < arguments.length; i++) sum += (arguments[i] = arguments[i] || 0);
return sum;
}
var undef;
console.log(mySum(1, 3, 5, 7, 9, null, undef)); // 函数作为方法调用
var myObject = {
firstName: "Frank",
lastName: "Liu",
fullName: function() { return this.firstName + " " + this.lastName; }
}
console.log(myObject.fullName()); // 构造函数调用函数
function demo3(arg1, arg2) {
this.firstName = arg1;
this.lastName = arg2;
}
var demo4 = new demo3("Frank", "Liu");
console.log(demo4.firstName); // call()和apply()是预定义的函数方法。 两个方法可用于调用函数,两个方法的第一个参数必须是对象本身
// call则作为call的参数传入(从第二个参数开始)
var demo5 = myMax.call(demo5, 3, 1, 5 ,2);
console.log(demo5);
// apply传入的是一个参数数组,也就是将多个参数组合成为一个数组传入
var demo6 = myMax.apply(demo6, [3, 1, 6 ,2]);
console.log(demo6); // JavaScript闭包
// 函数的特别之处在于可以创建一个独立的作用域,最内层的函数使用了counter变量,所以counter不会被销毁
var add = (function() {
var counter = 0;
return function() { return counter += 1; };
})();
console.log("Loop1: " + add()); // 1
console.log("Loop2: " + add()); // 2
console.log("Loop3: " + add()); // 3
</script>
</body>
</html>
JavaScript(2):函数的更多相关文章
- JavaScript中函数函数的定义与变量的声明<基础知识一>
1.JavaScript中函数的三种构造方式 a.function createFun(){ } b.var createFun=function (){ } c.var createFun=new ...
- 理解 JavaScript 回调函数并使用
JavaScript中,函数是一等(first-class)对象:也就是说,函数是 Object 类型并且可以像其他一等对象(String,Array,Number等)一样使用.它们可以"保 ...
- 5种 JavaScript 调用函数的方法
一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正理解Javascript函数是如何工作而导致的(顺便说一下,许多那样的代码是我写的).JavaScript拥有函数式编程的特性 ...
- javascript escape()函数和unescape()函数
javascript escape()函数和unescape()函数 escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串. 语法: escape(string) stri ...
- JavaScript调用函数的方法
摘要:这篇文章详细的介绍了Javascript中各种函数调用的方法及其原理,对于理解JavaScript的函数有很大的帮助! 一次又一次的,我发现,那些有bug的Javascript代码是由于没有真正 ...
- Javascript常用方法函数收集(二)
Javascript常用方法函数收集(二) 31.判断是否Touch屏幕 function isTouchScreen(){ return (('ontouchstart' in window) || ...
- javascript工具函数
第一部分 JavaScript工具函数 转义特殊字符为html实体 HtmlEncode: function(str){ return str.replace(/&/g, '&') ...
- [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")
javascript eval函数解析json数据时为什么 加上圆括号?为什么要 eval这里要添加 “("("+data+")");//”呢? 原因在于: ...
- javascript篇-----函数作用域,函数作用域链和声明提前
在一些类似C语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明它们的代码段之外是不可见的(也就是我们不能在代码段外直接访问代码段内声明的变量),我们称之为块级作用域,然而,不同于 ...
- JavaScript 常用函数总结
javascript函数: ·常规函数 ·数组函数 ·日期函数 ·数学函数 ·字符串函数 .cookie函数 1.常规函数 javascript常规函数包括以下9个函数: (1)alert ...
随机推荐
- java线程基础巩固---Thread API综合实战之编写ThreadService实现暴力结束线程
上篇中在最后抛出一个问题,具体问题可以查看此篇[http://www.cnblogs.com/webor2006/p/7995229.html],这里不再概述,其实要实现这个需求可以用咱们之前学习的守 ...
- SCU 4584 tarjan+最大权闭合子图
把每个点的点权当做是W[i]-V[i] 题目一眼是最大权闭合子图 但是可能会有重边自环和环 需要先搞成简单图 再tarjan缩点 缩点后就是裸的最大权闭合子图 #include<bits/std ...
- Python中关于csv的简单操作
Python中关于csv的简单操作 CSV操作简单,直接import csv即可, 主要使用reader和pandas 1 reader的简单使用 csv.reader("1.csv&quo ...
- SAP选择屏幕下拉框实现
DATA:vid TYPE vrm_id , "屏幕字段(可以是单个的I/O空间或者是Table Control中的一个单元格) list TYPE vrm_values, value LI ...
- Spring——AOP
AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.OOP引入 ...
- 解决tomcat控制台乱码+清除过期缓存条目后可用空间仍不足 - 请考虑增加缓存的最大空间问题
一.乱码 1.打开Tomcat的目录,找到conf文件夹,一般修改server.xml中的编码集,改为utf-8即可 2.若server.xml中编码设置的就是utf-8,可以修改logging.pr ...
- 【线段树哈希】「Balkan OI 2016」Haker
1A海星 题目大意 给你一个长度为 $n$ ,由小写字母构成的字符串 $S$ 和 $Q$ 个操作,每个操作是以下 3 种之一: 1 x y k :询问当前字符串从位置 $x$ 到 $y$ 的子串与从位 ...
- hive传递参数与调用
在运行hive命令时传入参数,使用-hivevar 和 -hiveconf 两种参数选项,来给此次的执行脚本传入参数 -hivevar : 传参数 ,专门提供给用户自定义变量. -hiveconf : ...
- 【原】eclipse save action设置文件保存时自动格式化
学了一段java了,发现其实eclipse有很多实用小功能,能够让你编码的时候快捷方便,如果你苦于一些你常用到的功能无法自动实现,那么你可以上网查一下,就会发现其实eclipse已经给你提供了便捷之路 ...
- 【UOJ#228】 基础数据结构练习题
题目描述 sylvia 是一个热爱学习的女孩子,今天她想要学习数据结构技巧. 在看了一些博客学了一些姿势后,她想要找一些数据结构题来练练手.于是她的好朋友九条可怜酱给她出了一道题. 给出一个长度为 n ...