一、 函数

函数可以封装一段特定功能的代码,然后通过函数名可以重复调用

1 .函数的定义

funcation 函数名 (){
函数体
}
函数名() 调用函数

2. 函数的参数

funcation fun (形参1,形参2...) {
函数声明
}
fun(实参1, 实参2...)

在函数内部修改形参的值,不会影响外部的实参的值

素数 (只能被1和自身整除的数)

3. 函数返回值 return

当函数中不写return的时候 返回的值是undefined
写了return后面没跟具体值也是返回undefined

4. arguments

通过arguments可以获取函数调用的时候的实参, (实参个数不确定的时候)

function getMax() {
var max = arguments[0];
for (var i = 0; i<arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
}
return max;
}
var retult = getMax(23,53,22,35,222,33,553);
console.log(retult);

求斐波那契数列中的第n个数是多少?

function getFib(n) {
var n1 =1;
var n2 =1;
var n3;
for (var i = 3; i<=n; i++) {
n3 = n1 + n2;
n1 = n2;
n2 = n3;
}
return n3;
}
var num = getFib(6);
console.log(num);

二、匿名函数

1. 匿名函数声明

1. 函数声明 -命令函数
function fn() {
} 2. 函数表达式 - 匿名函数
var fn = function () {
}

2. 用法

1. 将匿名函数赋值给一个变量, 这样就可以通过变量进行调用
2. 匿名函数自调用
自调用函数: 当函数书写完成之后立即调用
(function () {
console.log('我是自调用函数')
})() 3. 函数也是一种数据类型
var fn = function() {
console.log('我是传过来的函数')
} function test(fun) {
fun();
}
test(fn);
3.1 因为函数是一种数据类型所以可以作为另一个函数的参数
3.2 因为函数是一种数据类型, 所以函数可作为另一个函数的返回值 function test(a) {
var b =5;
return function () {
console.log(a + b);
}
}
var fn = test(2);
fn();

代码规范:

1. 命名规则
变量、函数的命名必须有意义
变量的名称一般用名词
函数的名称一般用动词
2. 变量规范
操作符的前后要有空格
3. 注释规范
// 这里是注释
4. 空格规范
if 和for 小括号前后都要有空格, 分号后面也要有一个空格
5. 换行规范
花括号起始的要跟定义的在一行

三、 作用域

变量或者函数可以起作用的访问

 全局作用域: 在script 标签中 或者一个独立的js文件中,在任何位置都可以访问
局部作用域: 任何一个函数的内部都有一个局部作用域,在局部作用域中定义的变量叫局部变量,只能在该定义的函数中才能访问
块级作用域: 在ECAMScript中没有块级作用域
代码块{
代码块可以单独存在
} 局部变量: 当这个函数执行完之后 内存会被回收
全局变量: 只有当关闭浏览器的时候 才会被回收 作用域链:
// 全局作用域-- 0级作用域链
var num = 5;
function f1() {
// f1 局部作用域 -- 1级作用域
var num = 15;
function f2() {
// f2 局部作用域 -- 2级作用域链
console.log(num);
}
f2()
}
f1()

四、预解析

1. 变量提升,把变量声明提升到当前作用域的最上面,不包括变量的赋值
2. 函数提升,把函数声明提升到当前作用域最上面,不包括函数调用
在预解析的过程中如果函数的变量的名字相同,此时函数优先

js入门之函数的更多相关文章

  1. js入门关于函数

    一,函数·关键字(function)复习var·js关键字.用于声明变量.生命在内存模块完成,定义(=)在执行模块完成.var(可以在内存模块提前完成,所以有变量提升的功能.function也是js的 ...

  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. Sass(Syntactically Awesome Stylesheets)——概述(待续)

    官网地址:http://sass.bootcss.com/ Sass(Syntactically Awesome Stylesheets) Sass 是成熟.稳定.强大的 CSS 扩展语言. 特征 兼 ...

  2. MySQL安装时出现Apply Security Settings错误的解决办法(转)

    最近在学习MySQL时,下载了MySQL5.5版本的安装包,在配置向导的最后的页面却出现了Apply Security Settings的错误.第一次安装时比较顺利,中途卸载了一下,结果第二次安装的时 ...

  3. 【Leetcode_easy】661. Image Smoother

    problem 661. Image Smoother 题意:其实类似于图像处理的均值滤波. solution: 妙处在于使用了一个dirs变量来计算邻域数值,看起来更简洁! class Soluti ...

  4. DOS与cmd(windows)

    dos是计算机的最初期的操作系统,对电脑操作必须输入各种dos命令窗口,可以理解成运行计算机机器内部语言,知道编程吗?其实早期dos命令操作系统就是运行计算机内部的编程命令,因此操作人员都必须具有一定 ...

  5. WordPress的Bootstrap面包屑导航

    <ol class="breadcrumb"> 当前位置: <li><a href="<?php bloginfo('url'); ? ...

  6. react 做的简易todolist

    首先要有一定的react的基础,里面的一些不做解释(包括项目文件的用法及作用)   ### 1. 先安装react的插件 npm  install  create-react-app  -g      ...

  7. Azure Web应用相关设置

    这里用来记录自己在工作中,在Azure Web应用中用到的配置 设置NodeJS版本 Azure Web应用默认的NodeJS版本是0.10.4,这个版本太低,不能满足实际的需要 参照下图修改,根据自 ...

  8. Egret入门学习日记 --- 第十一篇(书中 4.1~4.6节 内容)

    第十一篇(书中 4.1~4.6节 内容) 好了,到了这篇开始,前三章都记录完了. 接下来就是到第四章了. 4.1节 的内容总结一下重点: 1.resource目录下default.res.json文件 ...

  9. 20190923-基于Python3的RobotFramework的配置是初次使用

    因为最近改自动化框架在网上找了很多框架,发现RobotFramework不错,但是网上的资料很杂,现在将自己配置框架的学习笔记分享 Python配置RobotFramework的seleniumlib ...

  10. 【DSP开发】利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程

    [DSP开发]利用CCS5.4开发基于DSP6455的JPEG2000图像解压缩过程 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明:前端是时间基于VS ...