JavaScript函数简介
1./* JavaScript函数
函数function
- 函数也是一个对象
- 函数中可以封装一些功能(代码),在需要的使用可以执行这些功能(代码)
- 函数中可以保存一些代码在需要的时候调用
- 使用typeof检查一个函数对象时,会返回function
*/
//1.使用构造函数创建一个函数对象
//2.使用函数声明创建一个函数
//3.使用函数表达式创建一个函数/匿名函数
{//代码块
console.log("苹果");
console.log("葡萄");
console.log("菠萝");
}
// var obj=new Object();
//我们在开发的时候不建议使用这种方式
//可以将要封装的代码以字符串的形式传递给构造函数
var fun1=new Function("console.log('这是通过构造函数创建的函数')");
console.log(typeof fun1);
//封装到函数中的代码不会即可执行
//函数中的代码会在函数调用的时候执行
//调用函数:语法 函数对象();
//当调用函数时,函数中封装的代码会按照顺序执行
fun1();
/*使用函数声明来创建一个函数(建议使用方式)
语法:function 函数名([形参1,形参2,...,形参N]){
//语句
}
说明:[形参1,形参2,...,形参N]这里的[]表示可以使用参数也可以不使用参数
函数的调用:函数名([实参1,实参2,...]);
*/
function fun2(){
console.log("苹果");
console.log("葡萄");
console.log("菠萝");
}
fun2();
//匿名函数
// function(){
//
// }
//使用函数表达式创建一个函数
var fun3= function(){
alert("这是一个匿名函数")
};
fun3();
- 函数的参数
/*定义一个用来求两个数和的函数
可以在函数的()中来指定一个或多个形参(形式参数)
多个形参之间使用","隔开,声明形参就相当于在函数内部声明了对应的变量
但是并不赋值
*/
function sum(a,b){
var add=a+b;//false+"123" =>false123
console.log(add);
}
sum(123,456,45,56,56,67);
sum(false,"123");
/*调用函数时解析器不会检查实参的类型,
所以要注意,是否有可能会接收到非法的参数,如果有可能则需要对参数进行类型的检查
*/
/*调用函数时,解析器也不会对检查实参的数量
多余的参数将不会被赋值
如果实参少于形参的数据,则没有对应实参的形参将是undefined
*/
function result(a,b,c){
console.log("a="+a);
console.log("b="+b);
console.log("c="+c);
var sum=a+b+c;
console.log("sum="+sum);
}
result(123,234);//实参少于形参
result(123,234,345,6767,78,9);//实参多余形参
- 函数的返回值与立即执行函数
/*32.0 JavaScript函数的返回值
创建一个函数,用来计算三个数的和
可以通过return 来返回函数的返回值
语法:return 值;
return 后面值将会作为函数的执行结果返回,
可以定义一个变量来接收函数的返回值
在函数return后的语句都不会执行
如果return语句后不跟任何值,就相当于返回一个undefined
*/
function sum(a,b){
var c=a+b;
return c;
alert("234234");
alert("234234");
alert("234234");
alert("234234");
}
var total = sum(12,45);
console.log("返回结果=="+total);
/* 立即执行函数
函数定义完,立即被调用,这种函数叫做立即执行函数
立即执行函数往往只会执行一次
*/
(function(){
alert("这是一个立即执行函数");
})();
(function(a,b){
alert(a+b);
})(23,23);
call()与apply()
- 这两个方法都是函数对象的方法,需要通过函数对象来调用
- 当对函数调用call()和apply()都会去调用函数执行
- 在调用call()与apply()可以将一个对象指定为第一个参数
此时这个对象将会成为函数执行时的this
- call()方法可以将实参在对象之后依次传递
- apply() 方法需要将实参封装到一个数组中统一传递
JavaScript函数简介相关推荐
- TypeScript基础入门 - 函数 - 简介
2019独角兽企业重金招聘Python工程师标准>>> 转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/ ...
- JavaScript函数:arguments的使用
前期整理的JavaScript内容17篇附在文章末尾 一.arguments的使用 当我们不确定有多少个参数传递的时候,可以用 arguments 来获取.在 JavaScript 中,argumen ...
- html 超链接 javascript 函数 java 未定义_JavaScript 学习笔记(一)
本系列适合作为JS的复习文档. 学习JavaScript,不要以为会做一两个如图片切换.tabs选项卡这样特效,就是精通JavaScript了.JavaScript不仅仅是用来做一两个特效,它更大的用 ...
- 深入理解javascript函数系列第二篇——函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数.本文是深入理解javascript函数 ...
- 怎样在javascript函数中将变量传递给服务端脚本程序?
怎样在javascript函数中将变量传递给服务端脚本程序? (有朋友问上述问题, 愿把结论分享给大家). 摘 要: 服务器端脚本运行时, 它只会解释执行<% %>或<?php ...
- 史上自定义 JavaScript 函数Top 10
史上自定义 JavaScript 函数Top 10 http://www.dustindiaz.com/top-ten-javascript/ 发布:wpulog | 发布时间: 2010年4 ...
- HTML和JavaScript函数之间的关系
在javaScript中有两类函数,一个是自定义的函数,一个是JavaScript中的函数.在HTML中javaSrcipt能和HTML完全的融合,也就是我们的JavaScript系统函数能直接的应用 ...
- python 调用 javascript函数
python 调用 javascript函数 # pip install pyexecjs import execjs # 直接执行 print('execjs.eval:', execjs.eval ...
- 现代 JavaScript 函数库 usuallyjs 的安装和使用
usuallyjs usuallyjs 是一个面向现代 Web 开发的 JavaScript 实用函数库. usuallyjs 基于 ES6 开发,抛弃了传统 Web 开发中 DOM 和 BOM 操作 ...
最新文章
- pandas索引复合索引dataframe数据、索引其中多个水平(level)的多个数据行(index rows from different levels)、使用元组tuple表达复合索引的指定行
- 北斗导航 | 读取ground truth data(python源代码)
- mysql 删除重复数据_MySQL查找和删除重复数据
- react取消捕获_react 异常捕获
- 多线程的那点儿事(基础篇)
- c语言 信号函数,C语言中进程信号集的相关操作函数详解
- Audio播放流程(三)---NuPlayer流程之setAudioStreamType以及prepare
- python assertion failed_python - OpenCV错误:(-215:断言失败)!_src.empty()在函数'cvtColor'中 - 堆栈内存溢出...
- Android 自定义ScrollView 支持惯性滑动,惯性回弹效果。支持上拉加载更多
- Vue-跟着李南江学编程
- 公安大数据智能化平台(大数据人工智能公司)
- echarts地图整体渐变色
- SQL Server练习
- 详解Python中列表切片及浅拷贝的关系(上)
- cadence Virtuoso ADE原理图库中的VCVS(压控电压源)使用
- ThinkPad T400重装win7系统
- RK方案OTG口 OTG与HOST切换
- word2010生成的目录右侧不对齐怎么办?
- epoll_create详解
- linux 软连接 sudo ln -s 源文件 目标文件
热门文章
- 程序员的经济学系列——你不可不知的生存智慧——第一篇:小X是要成为IT精英的男人!...
- ARM 看门狗定时器
- 民用无人驾驶航空器系统驾驶员管理暂行规定
- 解决eclipse的 Invalid project description. overlaps the location of another project: 问题
- Python request 爬虫 食物营养成分查询平台
- flash芯片替换SAMSUNG K9K8G08U0E替换K9K8G08U0B
- Win10使用EasyBCD安装Ubuntu20.04双系统(windows引导)
- 汉芯一号诞生记 zz
- Nanopore测序在基因组 de novo中的应用
- 萤石三款摄像机采集数据及保存处理