函数

函数是什么

  • 函数是一种特殊的数据类型
  • 函数是执行特定任务的语句的集合。

创建函数的方法

  • 在创建函数的的时候,无论使用哪种方法,都需要使用function关键词。
    函数声明
function fnName(参数1,参数2,参数3,......参数N){
            //语句的集合
}

函数表达式
整个函数声明的过程由以下几部分构成:

  • 1.funcion: 是一个声明函数的关键词
  • 2.fnName: 函数名称。声明函数会创建一个变量,函数名称就是变量的名称,这个理解函数的关键。函数名称用来存放代码块(相当于变量的值)
  • 3.小括号:用于存储函数的参数。所有的参数都是为了计算函数的返回值而生。参数分为两类:
    • 形参:形参就是形式上的参数。形参是函数体内创建的变量。形参用于接收入到函数体内的实参。形参的数量可以是任意个,多个形参之间用逗号分隔。形参出现在函数申明中,实参出现在调用函数中。
  • 大括号:用于定义函数体。函数体内包裹的是多条要执行的语句。函数体相当于变量的值。
  • 4.函数体 :使用大括号包裹的代码块。函数体相当于函数名的值。
  • 5.return语句:如果你希望函数运行之后计算一个值,需要在函数内使用return语句显示设置返回值。return语句不是必须设置的,如果你没有在函数体内设置return语句,那么函数默认的返回值是undefiend。注意:一个函数只能有一个返回值,如果你需要返回多个值,可以考虑将多个值放入一个数组里,以数组元素的形式返回。

函数表达式

  • 特点1:函数只定义一次,可被调用任意次。
  • 特点2:定义的函数永远不会执行,除非你调用它。
    函数调用:
    直接调用
    事件调用
    方法调用
    作为参数调用
    自调用

作用域分类

全局作用域:局部作用域之外的区域就是全局作用域。
局部作用域:Unfortunately,局部作用域用两种定义方式:

  • 函数作用域:使用var关键词定义的变量就会创建函数作用域。
  • 块级作用域:使用let和const关键词定义的变量就会创建块级作用域。

示例: 声明一个求平方的函数

function square(a){
  return a * a
}

示例: 声明一个判断一个字符串是否是包含数字的函数

function square(a){
  return a * a
}

函数表达式

调用函数

  • 当创建了一个函数之后,如果你需要使用这个函数,你必须要去调用它,函数如果不调用,函数永远不会自己执行。调用函数的方法很简单,值需要在函数名之后加一对小括号就可以了。在调用函数时,小括号用于传递实参。

语法

funtionName( 实参1,实参2,实参3,...,实参N )
  • 实参: 是调用函数时,通过形参传入到函数内的实际的参数。所有的实参都是为了计算函数返回值而出现的。

示例: 调用square()函数

square(10) // 100

变量作用域

定义:

  • 变量作用域指变量发生作用的 (可以访问到) 区域。
  • 发生作用的区域是指定义变量的区域。变量在哪个区域定义,变量
    就在哪个区域起作用。在这个区域之内,可以访问到变量,在这个区域之外,访问不到变量。

有两种类型的作用域:
- 全局作用域:局部作用域之外的区域就是全局作用域。

  • 局部作用域:局部作用域指函数作用域块级作用域。这两种局部作用域使用不同的关键词定义:
  • 函数作用域:指在函数体内,使用关键词var定义的变量,会创建变量的函数作用域,也就是说变量只能在当前函数体内才可以访问。注:变量定义在if或for创建的代码块内,是不会创建函数作用域的。
  • 块级作用域: 指在大括号包裹的区域内,使用关键词let或const定义的变量,会创建块级作用域,只能在大括号内才可以访问。

变量提升

使用var或n声明的变量会被提升到作用域顶部。

示例1: 函数作用域

function fn(){
  var a = 100
  console.log(a) // 100 (在函数体内可访问到变量的值)
}
console.log(a) // Uncaught ReferenceError: a is not defined(在函数体外访问不到变量的值)

示例2: let定义的变量存在块级作用域

{
  let a = 100
  console.log(a) // 100
}
console.log(a) // Uncaught ReferenceError: a is not defined

示例3: let定义的变量存在块级作用域(if语句)

if(true){
  let a = 100
  console.log(a) // 100
}
console.log(a) // Uncaught ReferenceError: a is not defined

示例4: let定义的变量存在块级作用域(for语句)

for (let i = 0; i < 3; i++) {
  console.log(i) // 0, 1, 2
}
console.log(i) // Uncaught ReferenceError: i is not defined

示例5: var定义的变量不存在块级作用域

{
  var a = 100
  console.log(a) // 100
}
console.log(a) // 100

示例6: var定义的变量不存在块级作用域

if(true){
  var a = 100
  console.log(a) // 100
}
console.log(a) // 100

示例7: var定义的变量不存在块级作用域

for (var i = 0; i < 3; i++) {
  console.log(i) // 0, 1, 2
}
console.log(i) // 3

示例

console.log(a) //
var a = 1

示例

{
  let a = 1
}
console.log(a) // 

mouseover:当鼠标移入元素或其子元素都会触发事件,所以有一个重复触发,冒泡过程。对应的移除事件是mouseout

mouseenter:当鼠标移除元素本身(不包含元素的子元素)会触发事件,也就是不会冒泡,对应的移除事件是mouseleave

单词

get: 得到。got: 过去式表示已经得到。

  • I got it: 我得到它了。(我听懂了)
    compute: 动词。表示计算
    computde: 动词。表示计算过的
    comouter: 名词。表示风格、样式

getComputdestyle:

定义
window.getComputdestyle返回一个对象。该对象 包含元素的计算后的样式。

什么是计算后的样式?

封装一个move()功能函数

主要要点:
1.window.setInterval(fn.间隔时间)

  • 定义 语法(参数含义)

clearInterval

clearInterval()函数是在JavaScript中用于取消setInterval()函数设定的定时执行操作

操作符

自增操作符:前置自增 || 后置自增
a++ => a = a+1
++a => a = a+1

  • 第一个是先赋值再自加
  • 第二个是先自加在赋值
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 第5章 函数和函数式编程 5.1 引言函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数...
    VIVAFT阅读 951评论 0 5
  • @[toc]  本章介绍如何将语句组合成函数,这让你能够告诉计算机如何完成任务,且只需说一次,无需反复向计算机传达...
    奋斗在阿尔卑斯的皮卡丘阅读 1,522评论 0 1
  • 函数是什么 创建函数的方法 调用函数的方法 变量作用域 变量声明提升 函数也是数据 使用函数思想写程序的思路 函数...
    败于化纤阅读 139评论 0 0
  • js函数的概念和作用,js函数的定义,js函数的调用,js事件驱动的概念,js函数的实参和形参,js的作用域,js...
    小五丶_阅读 356评论 0 0
  • 导读 函数是什么 创建函数的方法 调用函数的方法 变量作用域 变量声明提升 函数也是数据 使用函数思想写程序的思路...
    Pj浩阅读 280评论 0 1