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入门指南>这本书中,只是简单的介绍了一些概念,是一本基础的入 ...
随机推荐
- spark中map与mapPartitions区别
在spark中,map与mapPartitions两个函数都是比较常用,这里使用代码来解释一下两者区别 import org.apache.spark.{SparkConf, SparkContext ...
- 转载:入门Webpack,看这篇就够了
写在前面的话 阅读本文之前,先看下面这个webpack的配置文件,如果每一项你都懂,那本文能带给你的收获也许就比较有限,你可以快速浏览或直接跳过:如果你和十天前的我一样,对很多选项存在着疑惑,那花一段 ...
- 斐讯K2 22.5.9固件刷华硕固件实测教程
斐讯K2最新的固件是V22.5.9.163这个版本是锁死了,不能刷机的,而且不能降级到原来的可以刷机的老版本固件,也就不能刷第三方固件了,怎么破呢?下面就教大家怎么降级刷机到V22.4.2.8固件. ...
- The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one time zone.
今天用mysql连接数据库时,出现The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than o ...
- Traceur
直接插入网页 <!-- 加载Traceur编译器 --> <script src="http://google.github.io/traceur-compiler/bin ...
- [RESTful] RESTful是什么,为什么要使用它
RESTful是什么? 本质:一种软件架构风格 核心:面向资源 解决的问题:降低开发的复杂性,提高系统的可伸缩性 设计概念和准则: 1.网络上所有的事物都可以被抽象为资源 2.每个资源都有唯一的资源标 ...
- 马凯军 周强 张季跃《面向对象与程序设计 Java》第十四周学习总结
实验十四 Swing图形界面组件 实验时间 20178-11-29 一.知识部分 1.模型-视图-控制器模式 模型:储存内容 视图:显示内容 控制器:处理用户输入 2.布局管理 2-1.流布局管理器 ...
- tomcat web漏洞整改--Apache Tomcat examples directory vulnerabilities
在利用AWVS等弱扫工具对网站进行漏洞扫描时,经常会出现一些Tomcat漏洞问题,一般在弱扫报告中,都会给出简单的处理办法,但有时这些办法可能不太适合我们,或者在一些正式使用的环境中,不好操作,那么我 ...
- stand up
#version_s#1.7#version_e# #update_s#https://files.cnblogs.com/files/dyh221/update.zip#update_e#
- java中List按指定大小分割
之前写过的代码,几个月后遇到类似的功能,感觉很熟悉,稍微费些劲也能做到,但是觉得有些不甘.明明之前整理好的为什么要重新做?百度参考其他人的思路感觉不是很顺心,个人原因吧.于是翻箱倒柜找出以前的代码,贴 ...