一,函数·关键字(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入门关于函数的更多相关文章

  1. js入门之函数

    一. 函数 函数可以封装一段特定功能的代码,然后通过函数名可以重复调用 1 .函数的定义 funcation 函数名 (){ 函数体 } 函数名() 调用函数 2. 函数的参数 funcation f ...

  2. React.js入门笔记

    # React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...

  3. React Native 系列(一) -- JS入门知识

    前言 本系列是基于React Native版本号0.44.3写的,最初学习React Native的时候,完全没有接触过React和JS,本文的目的是为了给那些JS和React小白提供一个快速入门,让 ...

  4. 以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明

    以太坊智能合约开发,Web3.js API 中文文档 ethereum web3.js入门说明 为了让你的Ðapp运行上以太坊,一种选择是使用web3.js library提供的web3.对象.底层实 ...

  5. 【JavaScript】——JS入门

    结束XML之旅,開始JavaScript的学习,看视频.了解了她的前世今生,还是为她捏了把汗啊! 看了部分视 频了,简单的总结一下吧! JavaScript是什么? JavaScript是一种基于面向 ...

  6. App开发Native.js入门指南

    概述 Native.js技术,简称NJS,是一种将手机操作系统的原生对象转义,映射为JS对象,在JS里编写原生代码的技术.如果说Node.js把js扩展到服务器世界,那么Native.js则把js扩展 ...

  7. d3.js 入门指南 - 仪表盘

    D3的全称是Data-Driven Documents(数据驱动的文档),是一个用来做数据可视化的JavaScript函数库,而JavaScript文件的后缀通常为.js,所以D3被称为D3.js. ...

  8. Vue.js 入门:从零开始做一个极简 To-Do 应用

    Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言  学习 Vue ...

  9. 《Three.js 入门指南》3.1.2 - 一份整齐的代码结构以及使用ORBIT CONTROLS插件(轨道控制)实现模型控制

    3.1.2 正式代码结构 & ORBIT CONTROLS插件(轨道控制) 说明 本节内容属于插入节,<Three.js入门指南>这本书中,只是简单的介绍了一些概念,是一本基础的入 ...

随机推荐

  1. cin.get();cin.clear();cin.sync()

    先看代码: #include<iostream> using namespace std; int main(){ int c,x; cout<<"输入大小" ...

  2. Qunar入职前自学笔记

    Q1. 什么是html,html发展历程 hyperText markup language 超文本标记语言 HTML是用于描述网页文档的标记语言.现在我们常常习惯于用数字来描述HTML的版本(如:H ...

  3. 运行 vue 报node错

    当报错 为这样时:  执行--npm install node-sass   即可

  4. windows7 下jdk1.8 改为 1.7过程,及环境变量配置;

    一. 安装完成后 当然是配置环境变量: JAVA_HOME 是我们以后用到jdk所在位置的内容时为了方便,给jdk起的名字,也是java程序约定的变量名,如果没有,当你在cmd 输入 java  ja ...

  5. Asp.Net Core通过HttpStatusCode状态处理响应结果

    在我的一个Asp.Net Core 2.1 的项目中,我们需要通过获得服务器返回的状态,去实现不用的操作,经过多方资料查询和实践,个人总结一种方法 一.修改控制器 在要返回值的控制器Action中,R ...

  6. maven源码打包

    1.打包时附加外部Jar包 <!--编译+外部 Jar打包-->          <plugin>            <artifactId>maven-co ...

  7. 10/03/2019 PCL-1.8.1 Ubuntu 16.04 boost 1.69 CUDA 9.0 installation

    cmake -DCMAKE_BUILD_TYPE=None -DBUILD_GPU=ON -DBUILD_CUDA=ON -DBUILD_gpu_kinfu=ON -DBUILD_gpu_kinfu_ ...

  8. 基于vue的图片查看插件vue-photo-preview

    1. 安装 在任务管理器中输入命令 2. 在项目main.js中引入 3.在所需要的项目中直接使用 还有两个属性,可以看需求添加 preview-title-enable="false&qu ...

  9. iOS开发之UIGestureRecognizer

    一:首先查看一下关于UIGestureRecognizer的定义 //当前手势状态 typedef NS_ENUM(NSInteger, UIGestureRecognizerState) { //尚 ...

  10. Linq语句的认识

    LINQ语句的使用小结: 1.将数组看做一张表来查询的情况: from d in countyIsCityLevel where d.Equals(AreaCode) select d   2.只查询 ...