js入门关于函数
一,函数·关键字(function)
复习
var·js关键字。用于声明变量。生命在内存模块完成,定义(=)在执行模块完成。
var(可以在内存模块提前完成,所以有变量提升的功能。
function也是js的关键字,用于声明和定义函数的。声明和定义都在内存模块完成。
function也是在内存模块提前完成,所以有函数提升这个功能。
变量提升和函数提升,都是预解释。都是浏览器的。
例如
console.log(b)//undefined()
console.log(a)//is not defined(a没有var,不存在变量提升 不会在内存模块出现)
a=2
var b=2
二,函数的定义 函数:具有一定功能的代码块。
语法通过function定义的,function后跟的是函数名
结构语法
function fn(){
}
内存模块只存var的变量名,而function存在整个代码块,因为声明和定义是同时完成的。
注意事项:
function fn(可有可无,有的是有名函数,没有的 是匿名函数)()(小括号必须有,里面放参数){
}(大括号必须有)
函数定义:通过function定义···function fn(){}
函数定义方式:
1.声明式定义 function fn(){}
2.表达式式声明
as()
var as=function(){
}
(会出现 as is not a function
原因是as是一个变量而不是函数)
3.自调用
定义和调用同时完成
(function fn(){
console.log()
})()
~function(){console.log()}
+function(){console.log()}
-function(){console.log()}
!function(){console.log()}
/* 4.通过对象的形式·····var as=function(){} */
函数调用:函数名+()·······fn()
函数最大的优势 会形成一个独立的模块,可以按需使用,也可重复使用;
按需使用 可以提升性能 重复使用 减少代码冗(rong,三声) 余;
函数调用的过程
函数执行时会形成一个私有作用域 最大的作用域是window(全局作用域)(共有作用域)
当私有作用域和共有作用域上的变量存在了相同的函数会使用自身的变量。自身没有时回向上级作用域查找指到window作用域
作用域链:函数内部的变量被使用时,首先会在自己的私有作用域中查找是否有着一个变量;有就是用,没有就向上级查找直到window
如果没有就是undefined
函数归属谁,跟他在哪调用没有关系,而是在哪定义有关。
函数递归:函数内部自己调用自己
例如:
Break和continue运算:
Break:终止当前程序;
continue:跳出当前程序,执行下一步;
递归求和:
var a=1;
var sum=0;
function fn(){
sum=sum+a;
a++;
console.log(sum)
if(a>=11){
return
}
fn()
}
fn()
js入门关于函数的更多相关文章
- js入门之函数
一. 函数 函数可以封装一段特定功能的代码,然后通过函数名可以重复调用 1 .函数的定义 funcation 函数名 (){ 函数体 } 函数名() 调用函数 2. 函数的参数 funcation f ...
- React.js入门笔记
# React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...
- React Native 系列(一) -- JS入门知识
前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...
- 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明
以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...
- 【JavaScript】——JS入门
结束XML之旅,開始JavaScript的学习,看视频.了解了她的前世今生,还是为她捏了把汗啊! 看了部分视 频了,简单的总结一下吧! JavaScript是什么? JavaScript是一种基于面向 ...
- App开发Native.js入门指南
概述 Native.js技术,简称NJS,是一种将手机操作系统的原生对象转义,映射为JS对象,在JS里编写原生代码的技术.如果说Node.js把js扩展到服务器世界,那么Native.js则把js扩展 ...
- d3.js 入门指南 - 仪表盘
D3的全称是Data-Driven Documents(数据驱动的文档),是一个用来做数据可视化的JavaScript函数库,而JavaScript文件的后缀通常为.js,所以D3被称为D3.js. ...
- Vue.js 入门:从零开始做一个极简 To-Do 应用
Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言 学习 Vue ...
- 《Three.js 入门指南》3.1.2 - 一份整齐的代码结构以及使用ORBIT CONTROLS插件(轨道控制)实现模型控制
3.1.2 正式代码结构 & ORBIT CONTROLS插件(轨道控制) 说明 本节内容属于插入节,<Three.js入门指南>这本书中,只是简单的介绍了一些概念,是一本基础的入 ...
随机推荐
- 第六次作业———numpy数据集练习
1. 安装scipy,numpy,sklearn包 2. 从sklearn包自带的数据集中读出鸢尾花数据集data 3.查看data类型,包含哪些数据 4.取出鸢尾花特征和鸢尾花类别数据,查看其形状及 ...
- [2003_p1]乒乓球
一道因为输出不一样疯狂超时的题目(是我太菜,但是我jio得代码是ok的) 题目描述 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及.其中11分制改革引起了很大的 ...
- HTML 基于 Python 实现分页功能
前面的话: 1. 网页引用的bootstrap 中的表格,所以需要引入样式类 2. 第一次写文章,不喜勿喷.有不足的地方,可留言我改正,在此先谢过. HTML代码: <!DOCTYPE html ...
- jmeter 常用组件详解
1.测试计划(test plan) 描述一个性能测试,包含本次测试所有相关功能 2.threads(users)线程 Setup thread group: 一种特殊类型的线程,可用于执行预测试操作. ...
- OpenGL中VA,VAO,VBO和EBO的区别
1,顶点数组(Vertex Array) VA,顶点数组也是收集好所有的顶点,一次性发送给GPU.不过数据不是存储于GPU中的,绘制速度上没有显示列表快,优点是可以修改数据. 4.VBO(Vertex ...
- js date setInterval 时间 时钟 getFullYear ,JavaScript
js 创建时钟: 1.参考链接: 注意 getYear (两位 或者 四位) 改成 getFullYear js操作时间 2.实例: html: <span class="glyp ...
- 基于ZYNQ的双核启动与通信问题解决
1 处理器间的通信 为AMP 设计创建应用之前,您需要考虑应用如何进行通信(如有需要).最简单的方法是使用片上存储器.Zynq SoC 配备256KB 的片上SRAM,可从以下四个源地址进行访问 ...
- gulp的使用(二)之gulpfile.js文件的配置
Gulpfile.js是什么文件: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她, ...
- sdn交换机和普通交换机区别
SDN交换机基本具有普通交换机的所有功能.SDN交换机特别的功能在于支持OpenFlow协议(有些只支持OpenFlow1.0,有些强点支持1.0和1.3).不过你要连接交换机再手动将所需的端口改成支 ...
- Linux三个网络监视器之《二》——nethogs
当你想要快速了解谁占用了你的带宽时,Nethogs 是快速和容易的.以 root 身份运行,并指定要监听的接口.它显示了空闲的应用程序和进程号,以便如果你愿意的话,你可以杀死它. 1 1.在这个网址f ...