JavaScript day04 函数
函数
函数讲解
函数是什么? 函数其实就抽取写好的js代码 作为一个通用的代码块 (封装)
作用: 减少代码冗余 (过多) 方便调用 (提供效率 提高代码的可读性) 便于维护 (二次修改)
js有哪些函数
1.系统函数 2.内置函数 3.自定义函数
函数带括号就是函数 函数没有调用是不会执行的
系统函数 就是系统自带的函数 alert()
内置函数 Math.pow() 属于Math对象的函数
自定义函数 自己写的函数 需要先书写 再进行调用
函数主要依赖于function关键词进行定义 一般的函数名以fn开头
自定义函数的三种声明方式
1.第一种声明
function 函数名(参数1,参数2....){
函数体(需要进行的操作)
}
function shouMessage(){ //showMessge 就是函数名
console.log('hello function'); //函数体
}
showMessage() //调用 使用 函数名()
2.第二种声明
var 变量名 = function(){
函数体
}
var fn = function(){ //fn就是一个变量名 表示当前的fn是一个函数 fn就是表示这个函数
console.log('hello function!!!');
}
//调用 使用变量名()
fn()
3.第三种声明 //使用new方式 不常用 凡是使用new的都是对象
var fnObj = new Function("console.log('hello function object')");
//调用
fnObj()
函数名和变量接收函数的区别
在初始状态页面加载的时候 js会优先加载function以及对应的变量命名 但是不会加载变量赋值的过程
//使用function直接写一个函数
function fn1(){
console.log('我是函数1');
}
//使用变量接收一个函数
var fn2 = function(){
console.log('我是函数2');
}
return关键词
return关键词是用于函数里面返回数据的 没有数据的返回的话 默认返回undefined
函数的参数可以写 可以不写 具体要看对应的参数是否被使用到
在函数定义的时候里面的参数名可以随便写 因为他是一个形参
两数相加的方法
function add(number1,number2){
return number1+number2
}
var number3 = add
console.log(number3)
//在调用的时候进行参数传递 传递的参数必须要为实参(实际参的参数)
当方法执行到return时 return会结束整个方法
arguments数组
function fn(){
//arg 参数 arguments表示的是参数数组 他具备数组的特性 可以接受用户传递的参数
//length属性 获取对应的长度 具备下标 获取指定的元素 (从0开始到length-1结束)
console.log(arguments.length); //3
}
fn(1,2,3)
//arguments可以接受任意类型的值
fn('1',null,undefined)
变量作用域
变量分为全局变量 作用域为全局和局部变量对应的代码块内(function)
代码块不包括 if switch 以及 for (声明的变量还是全局变量)
在function里面声明的变量 作用域只存在于function 对应的全局声明的变量是可以存在于全局的
全局作用域可以在局部调用 局部作用不能应用在全局
全局作用域的东西他对应的可以在局部中更改 局部作用域不能在全局更改
作用域链
函数的嵌套 : 如果你调用了最外层的function 那么是不会自动调用内层的function
找不到对应的变量就会报错
逐步向上寻找变量的过程叫做作用域链
作用域就是一个变量的作用区域
JavaScript day04 函数的更多相关文章
- 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语言的编程语言中,花括号内的每一段代码都具有各自的作用域,而且变量在声明它们的代码段之外是不可见的(也就是我们不能在代码段外直接访问代码段内声明的变量),我们称之为块级作用域,然而,不同于 ...
随机推荐
- CentOS 7 编译部署LAMP环境
文章目录 1.需求以及环境准备 1.1.版本需求 1.2.环境准备 1.3.安装包准备 2.编译升级Openssl 2.1.查看当前Openssl版本 2.2.备份当前版本Openssl文件 2.3. ...
- archery关闭导出功能
https://github.com/hhyo/Archery/issues/1367 进入docker容器,找到sqlquery.html.修改showExport相关配置为以下内容. {% if ...
- 小牟有趣的PWN
咳咳,主要是记一下最近学二进制然后工作室里面一个一起学pwn,然后遇到的一个比较好玩的题目. 一共呢,是两个文件,这也是最近学习pwn第一次做到两个文件的题目, 如果想要源文件,这边可以加我们的工作室 ...
- 都在用神器,只有你还在死磕excel做分析
一.excel数据分析工具_EXCE弱点 EXCEL一直是非常流行的个人计算机数据处理工具,它可以处理多种多样的数据,操作非常简单,支持丰富的函数.统计图表,在工作中更是非常得力的生产力工具.然而随着 ...
- python的字符串切片技术
听说过python的字符串切片技术吗?是不是听着超高级的?实际上,也不用想得太难,python的字符串切片技术就是将字符串的某些字符提取出来而已~ 字符串切片 字符串是一种序列类型,可以按序号访问其中 ...
- 【C# IO 操作 】内存之RAM、SRAM、DRAM、ROM、FLASH、SDRAM、DDR*
内存 内存(Memory)指的是内存存储器,又称为主存,是CPU用来直接寻址和存储的空间,它相当于一座桥梁,用以负责诸如硬盘.主板.显卡等硬件上的数据与处理器之间数据交换处理,我们可以把内存看作数据缓 ...
- mybatis plus框架的@TableField注解不生效问题总结
一.问题描述 最近遇到一个mybatis plus的问题,@TableField注解不生效,导致查出来的字段反序列化后为空 数据库表结构: CREATE TABLE `client_role` ( ` ...
- Oracle导出/导入数据方法--两种方法(pde格式/dmp格式)
转至:https://www.cnblogs.com/houbxblogs/articles/13365557.html?ivk_sa=1024320u 1.导出数据方法一(pde格式) 工具→ 导出 ...
- killall 、kill 、pkill 命令区别
转至:https://zhuanlan.zhihu.com/p/87904563 killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processes by ...
- oj教程--学习顺序
1.数组 2.排序 3.递归 4.栈 5.队列 6.链表 7.二叉树 8.大数或高精度 9.枚举 10.搜索 11.字符串问题 12.贪心 13.最短路径 14.动态规划